Šim*_*das 1 javascript safari jquery
我有这两页:
页面1.html
http://vidasp.net/tinydemos/jquery-load-issue/page1.html
<!DOCTYPE html>
<html>
<body>
<div id="wrap"> </div>
<script src="jquery.js"></script>
<script> $(function() { $('#wrap').load('page2.html'); }); </script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
page2.html
http://vidasp.net/tinydemos/jquery-load-issue/page2.html
<!DOCTYPE html>
<html>
<head>
<script> alert('Page 2 HEAD'); </script>
</head>
<body>
<p> PAGE 2 </p>
<script> alert('Page 2 BODY'); </script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
如您所见,我正在将整个 page2.html 加载到 page1.html 的 #wrap 元素中。请注意,page2.html 包含两个带有 alert() 函数调用的 SCRIPT 元素 - 一个在页面的 HEAD 中,另一个在页面的 BODY 中。
问题:
在 Firefox 3.9、IE9 beta、Chrome(最新)和 Opera 11 中,这两个警报都会执行。在 Safari 5 中,只执行第二个警报。
这是 Safari 的错误吗?
似乎这是一个 Safari 问题,但可能不是错误(并且可能发生在其他浏览器中):
jQuery 使用浏览器的 .innerHTML 属性来解析检索到的文档并将其插入到当前文档中。在这个过程中,浏览器经常会从文档中过滤元素,比如
<html>, <title>, or <head>元素。因此, .load() 检索到的元素可能与浏览器直接检索文档时不完全相同。
我猜这适用于任何时候.load()使用,而不仅仅是在获取片段时。但我认为这是最好的,因为您将内容拉入一个<body>不包含<head>标签的元素中?
| 归档时间: |
|
| 查看次数: |
2666 次 |
| 最近记录: |