summaryrefslogtreecommitdiffstatshomepage
path: root/www/static/test/manual/head-support/index.html
blob: 585eca62d81ec9a7ef963d683e3b46e4e4ea41c4 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Head Merge Test</title>
</head>
<body style="padding: 20px; font-family: sans-serif;" hx-ext="head-support">

<script src="../../../src/htmx.js"></script>
<script src="../../../src/ext/head-support.js"></script>

<h1>head-support Extension Testing</h1>

<h2>CSS + Boosting</h2>

<h3>Basic Merge 1 (inline CSS)</h3>
<a href="./basic-css-1.html"
   hx-boost="true"
   hx-target="this"
   hx-push-url="false">
    Basic CSS Merge (Should Add Red Border)
</a>
<p id="basic-css-1">
    Basic Merge 1
</p>

<h3>Basic Merge 2 (inline CSS)</h3>
<a href="./basic-css-2.html"
   hx-boost="true"
   hx-target="this"
   hx-push-url="false">
    Basic CSS Merge (Should Add Blue Border)
</a>
<p id="basic-css-2">
    Basic Merge 2
</p>

<h3>Basic Merge 3  (CSS File)</h3>
<button hx-get="./basic-css-3.html">Basic CSS Merge 3 (Should Add Green Border)</button>
<p id="basic-css-3">
    Basic Merge 3
</p>

<h2>History</h2>
<button hx-get="./basic-history-1.html" hx-push-url="true">Basic CSS Merge (Should Add Red Border)</button>
<p id="basic-history-1">
    Basic History 1
</p>

<h2>Title</h2>

<h2>Title + Boosting</h2>
<a href="./basic-title.html"
   hx-boost="true"
   hx-target="this"
   hx-push-url="false">
    Basic Title Merge (Should Set Title to "A New Title")
</a>

<h2>Javascript + Boosting</h2>
<h3>Inline Script</h3>
<a href="./basic-script.html"
   hx-boost="true"
   hx-target="this"
   hx-push-url="false">
    Basic Inline Script (Should Alert)
</a>

<h3>Script File</h3>
<a href="reeval-basic-script-2.html"
   hx-boost="true"
   hx-target="this"
   hx-push-url="false">Basic Sourced Script (Should Alert)</a>

<h2>Re-Evaluate + Boosting</h2>

<h3>Inline Script</h3>
<a href="./reeval-script.html"
   hx-boost="true"
   hx-target="this"
   hx-push-url="false">
    Basic Inline Script (Should Alert)
</a>

<h3>Script File</h3>
<a href="reeval-script-2.html"
   hx-boost="true"
   hx-target="this"
   hx-push-url="false">Basic Sourced Script (Should Alert)</a>


<h2>Appending</h2>

<h3><code>hx-preserve</code> keeps element in head</h3>
<button hx-get="./preserve-1.html">Adds Preserved Style via hx-preserve</button>
<p id="basic-preserve-1">
    Basic Preserve 1
</p>

<h3>Normal GET appends</h3>
<button hx-get="./preserve-2.html">Preserves Current Style via hx-get</button>
<p id="basic-preserve-2">
    Basic Preserve 2
</p>

<h3>Script can keep element in head</h3>
<script>
    htmx.on("htmx:removingHeadElement", function(evt){
        if (evt.detail.headElement && evt.detail.headElement.getAttribute("sample-preserve")) {
            evt.preventDefault();
        }
    })
</script>
<button hx-get="./preserve-3.html">Adds Preserved Style via event</button>
<p id="basic-preserve-3">
    Basic Preserve 3
</p>

</body>