Skip to content

Commit 35cecd3

Browse files
committed
Upload file: jquery-hashchange-by-cowboy.html
1 parent f74c1ca commit 35cecd3

File tree

1 file changed

+360
-0
lines changed

1 file changed

+360
-0
lines changed
Lines changed: 360 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,360 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8">
5+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
6+
<title>jQuery Hashchange by Cowboy</title>
7+
<meta name="description" content="This jQuery plugin enables very basic bookmarkable #hash history via a cross-browser HTML5 window.onhashchange event.">
8+
<meta name="author" content="cowboy">
9+
<meta name="robots" content="index, follow">
10+
<!-- Canonical URL -->
11+
<link rel="canonical" href="https://codehimblog.github.io/jquery-plugins/jquery-hashchange-by-cowboy.html">
12+
<!-- Favicon -->
13+
<link rel="icon" href="/favicon.ico" type="image/png">
14+
<!-- Bootstrap CSS -->
15+
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet">
16+
<!-- Bootstrap Icons -->
17+
<link href="https://cdn.jsdelivr.net/npm/bootstrap-icons/font/bootstrap-icons.css" rel="stylesheet">
18+
<link rel="stylesheet" href="/css/styles.css">
19+
</head>
20+
<body>
21+
<!-- Navbar -->
22+
<nav class="navbar navbar-expand-lg navbar-dark bg-dark fixed-top">
23+
<div class="container">
24+
<a class="navbar-brand" href="https://codehimblog.github.io">
25+
<i class="bi bi-box-seam me-2"></i>CodehimBlog
26+
</a>
27+
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
28+
<span class="navbar-toggler-icon"></span>
29+
</button>
30+
<div class="collapse navbar-collapse" id="navbarNav">
31+
<ul class="navbar-nav ms-auto">
32+
<li class="nav-item">
33+
<a class="nav-link" href="https://codehimblog.github.io/"><i class="bi bi-house-door me-1"></i> Home</a>
34+
</li>
35+
<li class="nav-item">
36+
<a class="nav-link" href="https://codehimblog.github.io/projects/"><i class="bi bi-box me-1"></i> Projects</a>
37+
</li>
38+
<li class="nav-item">
39+
<a class="nav-link" href="https://codehimblog.github.io/about.html"><i class="bi bi-book me-1"></i> About</a>
40+
</li>
41+
<li class="nav-item">
42+
<a class="nav-link" href="https://codehimblog.github.io/contact.html"><i class="bi bi-envelope me-1"></i> Contact</a>
43+
</li>
44+
</ul>
45+
</div>
46+
</div>
47+
</nav>
48+
49+
<!-- Breadcrumbs -->
50+
<div class="container mt-4 breadcrumbs">
51+
<nav aria-label="breadcrumb">
52+
<ol class="breadcrumb mb-0">
53+
<li class="breadcrumb-item"><a href="https://codehimblog.github.io/">Home</a></li>
54+
<li class="breadcrumb-item"><a href="https://codehimblog.github.io/jquery-plugins/">jQuery Plugins</a></li>
55+
<li class="breadcrumb-item active" aria-current="page">jQuery Hashchange</li>
56+
</ol>
57+
</nav>
58+
</div>
59+
60+
<!-- Schema Markup for Breadcrumbs -->
61+
<script type="application/ld+json">
62+
{
63+
"@context": "https://schema.org",
64+
"@type": "BreadcrumbList",
65+
"itemListElement": [
66+
{
67+
"@type": "ListItem",
68+
"position": 1,
69+
"name": "Home",
70+
"item": "https://codehimblog.github.io/"
71+
},
72+
{
73+
"@type": "ListItem",
74+
"position": 2,
75+
"name": "jQuery Plugins",
76+
"item": "https://codehimblog.github.io/jquery-plugins/"
77+
},
78+
{
79+
"@type": "ListItem",
80+
"position": 3,
81+
"name": "jQuery Hashchange",
82+
"item": "https://codehimblog.github.io/projects/{{packageSlug}}"
83+
}
84+
]
85+
}
86+
</script>
87+
<!-- Main Content -->
88+
<div class="container mt-3">
89+
<div class="row">
90+
<!-- Main Details -->
91+
<main class="col-md-8 site-main p-0">
92+
<article>
93+
<!-- Project Name & Description -->
94+
<h1 id="packageName">jQuery Hashchange</h1>
95+
<p id="packageDescription" class="text-muted">This jQuery plugin enables very basic bookmarkable #hash history via a cross-browser HTML5 window.onhashchange event.</p>
96+
97+
98+
99+
<!-- Statistics -->
100+
<div class="stat-row d-flex justify-content-around align-items-center text-center mb-2">
101+
<div class="stat-box d-flex align-items-center flex-column-mobile">
102+
<i class="bi bi-star-fill text-warning mb-2"></i>
103+
<div>
104+
<span id="stargazersCount" class="stat-value">1213</span>
105+
<p class="stat-label mb-0">Stars</p>
106+
</div>
107+
</div>
108+
109+
<div class="stat-box d-flex align-items-center flex-column-mobile">
110+
<i class="bi bi-box-arrow-in-down mb-2"></i>
111+
<div>
112+
<span id="repoSize" class="stat-value">0.84 MB</span>
113+
<p class="stat-label mb-0">Size</p>
114+
</div>
115+
</div>
116+
117+
<div class="stat-box d-flex align-items-center flex-column-mobile">
118+
<i class="bi bi-arrow-repeat text-secondary mb-2"></i>
119+
<div>
120+
<span id="forksCount" class="stat-value">258</span>
121+
<p class="stat-label mb-0">Forks</p>
122+
</div>
123+
</div>
124+
125+
<div class="stat-box d-flex align-items-center flex-column-mobile">
126+
<i class="bi bi-exclamation-circle text-danger mb-2"></i>
127+
<div>
128+
<span id="openIssuesCount" class="stat-value">26</span>
129+
<p class="stat-label mb-0">Open Issues</p>
130+
</div>
131+
</div>
132+
</div>
133+
134+
135+
<div class="ad-unit ad-apt">
136+
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-7089100907045419"
137+
crossorigin="anonymous"></script>
138+
<!-- CodehimBlog APT -->
139+
<ins class="adsbygoogle"
140+
style="display:block"
141+
data-ad-client="ca-pub-7089100907045419"
142+
data-ad-slot="4990741913"
143+
data-ad-format="auto"
144+
data-full-width-responsive="true"></ins>
145+
<script>
146+
(adsbygoogle = window.adsbygoogle || []).push({});
147+
</script>
148+
</div>
149+
150+
<div class="row mb-4">
151+
<!-- Tabs (Left) -->
152+
<div class="col-12 col-md-6 d-flex justify-content-start mb-3 mb-md-0">
153+
<ul class="nav nav-tabs" id="infoTabs" role="tablist">
154+
<li class="nav-item" role="presentation">
155+
<button class="nav-link active" id="installation-tab" data-bs-toggle="tab" data-bs-target="#installation" type="button" role="tab" aria-controls="installation" aria-selected="true">
156+
<i class="bi bi-file-earmark-text"></i> Readme
157+
</button>
158+
</li>
159+
<li class="nav-item" role="presentation">
160+
<button class="nav-link" id="changelog-tab" data-bs-toggle="tab" data-bs-target="#changelog" type="button" role="tab" aria-controls="changelog" aria-selected="false">
161+
<i class="bi bi-journal-text me-2"></i> Changelog
162+
</button>
163+
</li>
164+
</ul>
165+
</div>
166+
167+
<!-- Action Buttons (Right) -->
168+
<div class="col-12 col-md-6 d-flex align-items-center justify-content-end">
169+
<a href="https://github.com/cowboy/jquery-hashchange/archive/refs/heads/master.zip" class="btn btn-primary me-2 action-btn" id="downloadBtn">
170+
<i class="bi bi-cloud-download me-2"></i>Download ZIP
171+
</a>
172+
<a href="https://github.com/cowboy/jquery-hashchange" target="_blank" class="btn btn-outline-secondary action-btn" id="githubBtn">
173+
<i class="bi bi-github me-2"></i>Fork on GitHub
174+
</a>
175+
</div>
176+
</div>
177+
<div class="tab-content mt-3" id="infoTabsContent">
178+
<div class="tab-pane fade show active" id="installation" role="tabpanel" aria-labelledby="installation-tab">
179+
<h1>jQuery hashchange event</h1>
180+
<p><a href="http://benalman.com/projects/jquery-hashchange-plugin/">http://benalman.com/projects/jquery-hashchange-plugin/</a></p>
181+
<p>Version: 1.3, Last updated: 7/21/2010</p>
182+
<p>This jQuery plugin enables very basic bookmarkable #hash history via a cross-browser window.onhashchange event.</p>
183+
<p>Visit the <a href="http://benalman.com/projects/jquery-hashchange-plugin/">project page</a> for more information and usage examples!</p>
184+
<h2>Documentation</h2>
185+
<p><a href="http://benalman.com/code/projects/jquery-hashchange/docs/">http://benalman.com/code/projects/jquery-hashchange/docs/</a></p>
186+
<h2>Examples</h2>
187+
<p>These working examples, complete with fully commented code, illustrate a few<br />
188+
ways in which this plugin can be used.</p>
189+
<p><a href="http://benalman.com/code/projects/jquery-hashchange/examples/hashchange/">http://benalman.com/code/projects/jquery-hashchange/examples/hashchange/</a><br />
190+
<a href="http://benalman.com/code/projects/jquery-hashchange/examples/document_domain/">http://benalman.com/code/projects/jquery-hashchange/examples/document_domain/</a></p>
191+
<h2>Support and Testing</h2>
192+
<p>Information about what version or versions of jQuery this plugin has been<br />
193+
tested with, what browsers it has been tested in, and where the unit tests<br />
194+
reside (so you can test it yourself).</p>
195+
<h3>jQuery Versions</h3>
196+
<p>1.2.6, 1.3.2, 1.4.1, 1.4.2</p>
197+
<h3>Browsers Tested</h3>
198+
<p>Internet Explorer 6-8, Firefox 2-4, Chrome 5-6, Safari 3.2-5, Opera 9.6-10.60, iPhone 3.1, Android 1.6-2.2, BlackBerry 4.6-5.</p>
199+
<h3>Unit Tests</h3>
200+
<p><a href="http://benalman.com/code/projects/jquery-hashchange/unit/">http://benalman.com/code/projects/jquery-hashchange/unit/</a></p>
201+
<h2>A more robust solution</h2>
202+
<p>This plugin is, by design, very basic. If you want to add lot of extra utility around getting and setting the hash as a state, and parsing and merging fragment params, check out the <a href="http://benalman.com/projects/jquery-bbq-plugin/">jQuery BBQ</a> plugin. It includes this plugin at its core, plus a whole lot more, and has thorough documentation and examples as well. You can't have too much of a good thing!</p>
203+
<h2>Known issues</h2>
204+
<p>While this jQuery hashchange event implementation is quite stable and robust, there are a few unfortunate browser bugs surrounding expected hashchange event-based behaviors, independent of any JavaScript window.onhashchange abstraction. See the following examples for more information:</p>
205+
<p>Chrome: Back Button<br />
206+
<a href="http://benalman.com/code/projects/jquery-hashchange/examples/bug-chrome-back-button/">http://benalman.com/code/projects/jquery-hashchange/examples/bug-chrome-back-button/</a></p>
207+
<p>Firefox: Remote XMLHttpRequest<br />
208+
<a href="http://benalman.com/code/projects/jquery-hashchange/examples/bug-firefox-remote-xhr/">http://benalman.com/code/projects/jquery-hashchange/examples/bug-firefox-remote-xhr/</a></p>
209+
<p>WebKit: Back Button in an Iframe<br />
210+
<a href="http://benalman.com/code/projects/jquery-hashchange/examples/bug-webkit-hash-iframe/">http://benalman.com/code/projects/jquery-hashchange/examples/bug-webkit-hash-iframe/</a></p>
211+
<p>Safari: Back Button from a different domain<br />
212+
<a href="http://benalman.com/code/projects/jquery-hashchange/examples/bug-safari-back-from-diff-domain/">http://benalman.com/code/projects/jquery-hashchange/examples/bug-safari-back-from-diff-domain/</a></p>
213+
<p>Also note that should a browser natively support the window.onhashchange<br />
214+
event, but not report that it does, the fallback polling loop will be used.</p>
215+
<h2>Release History</h2>
216+
<p>1.3 - (7/21/2010) Reorganized IE6/7 Iframe code to make it more &quot;removable&quot; for mobile-only development. Added IE6/7 document.title support. Attempted to make Iframe as hidden as possible by using techniques from <a href="http://www.paciellogroup.com/blog/?p=604">http://www.paciellogroup.com/blog/?p=604</a>. Added support for the &quot;shortcut&quot; format $(window).hashchange( fn ) and $(window).hashchange() like jQuery provides for built-in events. Renamed jQuery.hashchangeDelay to jQuery.fn.hashchange.delay and lowered its default value to 50. Added jQuery.fn.hashchange.domain and jQuery.fn.hashchange.src properties plus document-domain.html file to address access denied issues when setting document.domain in IE6/7.<br />
217+
1.2 - (2/11/2010) Fixed a bug where coming back to a page using this plugin from a page on another domain would cause an error in Safari 4. Also, IE6/7 Iframe is now inserted after the body (this actually works), which prevents the page from scrolling when the event is first bound. Event can also now be bound before DOM ready, but it won't be usable before then in IE6/7.<br />
218+
1.1 - (1/21/2010) Incorporated document.documentMode test to fix IE8 bug where browser version is incorrectly reported as 8.0, despite inclusion of the X-UA-Compatible IE=EmulateIE7 meta tag.<br />
219+
1.0 - (1/9/2010) Initial Release. Broke out the jQuery BBQ event.special window.onhashchange functionality into a separate plugin for users who want just the basic event &amp; back button support, without all the extra awesomeness that BBQ provides. This plugin will be included as part of jQuery BBQ, but also be available separately.</p>
220+
<h2>License</h2>
221+
<p>Copyright (c) 2010 &quot;Cowboy&quot; Ben Alman<br />
222+
Dual licensed under the MIT and GPL licenses.<br />
223+
<a href="http://benalman.com/about/license/">http://benalman.com/about/license/</a></p>
224+
</div>
225+
226+
<div class="tab-pane fade" id="changelog" role="tabpanel" aria-labelledby="changelog-tab">
227+
<ul id="changelogList">
228+
No changelog available.
229+
</ul>
230+
</div>
231+
232+
</div>
233+
234+
<div class="tags mb-2 mt-2">
235+
236+
</div>
237+
238+
</article>
239+
240+
241+
</main>
242+
<!-- Sidebar -->
243+
<aside class="col-md-4 p-0">
244+
<div class="sidebar">
245+
<!-- Owner Section -->
246+
<div class="sidebar-item mb-4">
247+
<div class="ad-unit">
248+
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-7089100907045419"
249+
crossorigin="anonymous"></script>
250+
<!-- CodehimBlog Sidebar -->
251+
<ins class="adsbygoogle"
252+
style="display:block"
253+
data-ad-client="ca-pub-7089100907045419"
254+
data-ad-slot="8929986923"
255+
data-ad-format="auto"
256+
data-full-width-responsive="true"></ins>
257+
<script>
258+
(adsbygoogle = window.adsbygoogle || []).push({});
259+
</script>
260+
</div>
261+
<div class="d-flex align-items-center">
262+
<img src="https://avatars.githubusercontent.com/u/54051?v=4" alt="Owner Avatar" class="rounded-circle me-2 owner-avatar">
263+
<a href="https://github.com/cowboy" target="_blank" id="ownerName" class="sidebar-link">cowboy</a>
264+
</div>
265+
</div>
266+
267+
<!-- Metadata Section -->
268+
<div class="sidebar-item mb-2">
269+
<div class="metadata-item d-flex align-items-center">
270+
<i class="bi bi-calendar me-2"></i>
271+
<strong>Created At:</strong>
272+
<span id="createdAt" class="ms-1">January 9, 2010</span>
273+
</div>
274+
<div class="metadata-item d-flex align-items-center mt-2">
275+
<i class="bi bi-pencil-square me-2"></i>
276+
<strong>Last Updated:</strong>
277+
<span id="updatedAt" class="ms-1">September 6, 2024</span>
278+
</div>
279+
<div class="metadata-item d-flex align-items-center mt-2">
280+
<i class="bi bi-file-earmark-code me-2"></i>
281+
<strong>Language:</strong>
282+
<span id="language" class="ms-1">JavaScript</span>
283+
</div>
284+
285+
<div class="metadata-item d-flex align-items-center mt-2">
286+
<i class="bi bi-shield-check"></i>
287+
<strong>License:</strong>
288+
<span id="license" class="ms-1">GNU General Public License v2.0</span>
289+
</div>
290+
<a href="http://benalman.com/projects/jquery-hashchange-plugin/" target="_blank" class="btn btn-outline-dark btn-sm" id="homepageBtn">
291+
<i class="bi bi-house-door me-2"></i>Visit Homepage
292+
</a>
293+
294+
</div>
295+
296+
<div class="sidebar-item mb-2">
297+
<li>No dependencies!</li>
298+
</div>
299+
300+
<div class="sidebar-item">
301+
<h5 class="sidebar-title">Contributors</h5>
302+
<ul class="p-0" id="contributorsList">
303+
<ul class="list-group list-group-flush" id="contributorsList"><li class="list-group-item d-flex align-items-center contributor-item"><img src="https://avatars.githubusercontent.com/u/54051?v=4" alt="cowboy" class="rounded-circle me-3" style="width: 40px; height: 40px;"><div><a href="https://github.com/cowboy" target="_blank" class="text-decoration-none fw-bold">cowboy</a><p class="mb-0 text-muted small">17 contributions</p></div></li></ul>
304+
</ul>
305+
306+
</div>
307+
308+
<div class="ad-unit">
309+
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-7089100907045419"
310+
crossorigin="anonymous"></script>
311+
<!-- CodehimBlog Skyscrapper -->
312+
<ins class="adsbygoogle"
313+
style="display:block"
314+
data-ad-client="ca-pub-7089100907045419"
315+
data-ad-slot="7469565592"
316+
data-ad-format="auto"
317+
data-full-width-responsive="true"></ins>
318+
<script>
319+
(adsbygoogle = window.adsbygoogle || []).push({});
320+
</script>
321+
</div>
322+
323+
</div>
324+
</aside>
325+
</div>
326+
</div>
327+
<!-- Footer -->
328+
<footer class="bg-dark text-white text-center py-3 page-footer">
329+
<div class="container">
330+
<p class="mb-2">© 2024 CodehimBlog - Powered by GitHub</p>
331+
<nav>
332+
<ul class="list-inline mb-0">
333+
<li class="list-inline-item">
334+
<a href="/privacy-policy.html" class="footer-link">Privacy Policy</a>
335+
</li>
336+
<li class="list-inline-item">
337+
<span class="text-white">|</span>
338+
</li>
339+
<li class="list-inline-item">
340+
<a href="/terms-and-conditions.html" class="footer-link">Terms and Conditions</a>
341+
</li>
342+
</ul>
343+
</nav>
344+
</div>
345+
</footer>
346+
<!-- Bootstrap Bundle JS -->
347+
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js"></script>
348+
<script src="https://cdn.jsdelivr.net/gh/google/code-prettify@master/loader/run_prettify.js"></script>
349+
<script src="/js/script.js"></script>
350+
<!-- Google tag (gtag.js) -->
351+
<script async src="https://www.googletagmanager.com/gtag/js?id=G-FG2ZX76XGT"></script>
352+
<script>
353+
window.dataLayer = window.dataLayer || [];
354+
function gtag(){dataLayer.push(arguments);}
355+
gtag('js', new Date());
356+
357+
gtag('config', 'G-FG2ZX76XGT');
358+
</script>
359+
</body>
360+
</html>

0 commit comments

Comments
 (0)