Mik*_*ike 81 safari ajax jquery
这似乎只是与Safari相关的问题.我在Mac上尝试了4次,在Windows上尝试了3次,但我仍然没有运气.
我正在尝试加载外部HTML文件并使嵌入的JavaScript执行.
我试图使用的代码是这样的:
$("#myBtn").click(function() {
$("#myDiv").load("trackingCode.html");
});
Run Code Online (Sandbox Code Playgroud)
trackingCode.html 看起来像这样(现在很简单,但如果我开始工作,会扩展一次):
<html>
<head>
<title>Tracking HTML File</title>
<script language="javascript" type="text/javascript">
alert("outside the jQuery ready");
$(function() {
alert("inside the jQuery ready");
});
</script>
</head>
<body>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我在IE(6和7)和Firefox(2和3)中看到了两条警报消息.但是,我无法在Safari中看到这些消息(我需要关注的最后一个浏览器 - 项目要求 - 请不要进行火焰战争).
有关为什么Safari忽略trackingCode.html文件中的JavaScript的任何想法?
最后,我希望能够将JavaScript对象传递给此trackingCode.html文件,以便在jQuery ready调用中使用,但我希望确保在我走这条路之前在所有浏览器中都可以实现.
Ton*_*ler 55
您正在将整个HTML页面加载到div中,包括html,head和body标记.如果您执行加载并在您加载的HTML中只有开始脚本,关闭脚本和JavaScript代码会发生什么?
这是驱动程序页面:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>jQuery Load of Script</title>
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load("jquery", "1.3.2");
</script>
<script type="text/javascript">
$(document).ready(function(){
$("#myButton").click(function() {
$("#myDiv").load("trackingCode.html");
});
});
</script>
</head>
<body>
<button id="myButton">Click Me</button>
<div id="myDiv"></div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
以下是trackingCode.html的内容:
<script type="text/javascript">
alert("Outside the jQuery ready");
$(function() {
alert("Inside the jQuery ready");
});
</script>
Run Code Online (Sandbox Code Playgroud)
这适用于Safari 4.
更新:添加了DOCTYPE和html命名空间以匹配我的测试环境中的代码.使用Firefox 3.6.13测试并且示例代码有效.
xtd*_*tds 39
$("#images").load(location.href+" #images",function(){
$.getScript("js/productHelper.js");
});
Run Code Online (Sandbox Code Playgroud)
小智 23
之前的另一个版本的John Pick的解决方案,这对我来说很好:
jQuery.ajax({
....
success: function(data, textStatus, jqXHR) {
jQuery(selecteur).html(jqXHR.responseText);
var reponse = jQuery(jqXHR.responseText);
var reponseScript = reponse.filter("script");
jQuery.each(reponseScript, function(idx, val) { eval(val.text); } );
}
...
});
Run Code Online (Sandbox Code Playgroud)
小智 13
我意识到这是一个较旧的帖子,但对于任何人来到这个页面寻找类似的解决方案......
http://api.jquery.com/jQuery.getScript/
Run Code Online (Sandbox Code Playgroud)jQuery.getScript( url, [ success(data, textStatus) ] )
url- 包含发送请求的URL的字符串.
success(data, textStatus)- 请求成功时执行的回调函数.Run Code Online (Sandbox Code Playgroud)$.getScript('ajax/test.js', function() { alert('Load was performed.'); });
小智 9
如果您将HTML字段加载到动态创建的元素中,这似乎不起作用.
$('body').append('<div id="loader"></div>');
$('#loader').load('htmlwithscript.htm');
Run Code Online (Sandbox Code Playgroud)
我看一下firebug DOM,根本没有脚本节点,只有HTML和我的CSS节点.
有谁遇到过这个?
| 归档时间: |
|
| 查看次数: |
202239 次 |
| 最近记录: |