我正在使用jquery地址插件来加载页面,但是没有hash(#)。
index.html:
<a href="page.html">Link</a>
<div id="content">
<script>
$(document).ready(function() {
$.address.init(function(event) {
$('a').address();
}).change(function(event) {
// do something depending on the event.value property, e.g.
console.log(event.value);
$.ajax({
type: "POST",
url: event.value,
success: function(msg){
$('#content').html( $(msg).find("#content").html() );
}
});
});
$('a').click(function(e) {
$.address.value($(this).attr('href'));
});
});
</script>
</div>
page.html:
<div id="content">
<p>text</p>
<script>
$(document).ready(function() {
alert('loaded');
});
</script>
</div>
在#content div中将从page.html中加载#content html(也许我应该使用其他功能,而不是.html(),请纠正我),因为div是script标签,但是加载该页面时我没有收到警告从ajax开始,它无需加载ajax就可以工作。
有人能帮我吗 ?
编辑:
当我尝试单击带有js函数的链接时出现此错误:
XMLHttpRequest cannot load javascript:;. Cross origin requests are only supported for HTTP.
演示:http://fbstatusi.com/desavanja/kalendar/mesecna_lista
点击链接
Zurka 123
最佳答案
加载文档时,document.ready
仅发生一次。 AJAX请求不会导致它。
<div id="content">
<p>text</p>
<script type="text/javascript">
alert('loaded');
</script>
</div>
这应该工作。
还要尝试将
$(msg).find("#content").html()
更改为$(msg).find("#content")[0].innerHTML
,因为jquery html会删除标签。编辑
看看这个thread,关于它为什么发生的讨论已经很长时间了。在这种情况下,
$(msg)
jQuery将始终删除脚本标签。但同时$(msg).filter("script")
返回脚本,因此您可以先找到这些脚本,然后将其全部插入$('#content').html( $(msg).find("#content").html() );
之后关于javascript - ajax加载的内容,脚本未执行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12359763/