Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用jQuery.load会断开到其他库资源的链接吗?_Javascript_Jquery_Shadowbox - Fatal编程技术网

Javascript 使用jQuery.load会断开到其他库资源的链接吗?

Javascript 使用jQuery.load会断开到其他库资源的链接吗?,javascript,jquery,shadowbox,Javascript,Jquery,Shadowbox,我有一个带有div的简单html页面。我正在使用jQuery将aspx应用程序的内容加载到content div中。代码如下所示: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <script type="text/javasc

我有一个带有div的简单html页面。我正在使用jQuery将aspx应用程序的内容加载到content div中。代码如下所示:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
                "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <script type="text/javascript" src="http://code.jquery.com/jquery-latest.js">
    </script>
    <script type="text/javascript">
        jQuery.noConflict();
    </script>
</head>
<body>
    <div id="content">
        <div id="loading"> 
            <div class="loading-indicator">Loading...</div>
        </div>
    </div>
</body>
<script type="text/javascript">
    jQuery(document).ready(function() {
        jQuery("#content").load("default.aspx");
    });
</script>
</html>

问题是default.aspx使用shadowbox和其他javascript库。当代码试图在default.aspx上执行时,它的行为就像没有加载js源文件一样。我检查了firebug和js文件,没有404或任何东西。有人知道我错过了什么吗?正如您所看到的,我使用jQuery noConflict函数是因为我认为$的使用可能与其他库冲突,但没有帮助…

似乎是一个常见问题:


我猜浏览器内置的安全性可以防止ajax响应运行任意脚本。

似乎是一个常见问题:


我猜浏览器内置了安全性,以防止ajax响应运行任意脚本。

我有代码这样做,它可能比需要的更详细,但嵌套的js文件应该不是问题

jQuery.get('default.aspx', null, function(data) {
    $('#default').append(data);
}, 'html');

我有这样做的代码,它可能比需要的更详细,但嵌套的js文件应该不会有问题

jQuery.get('default.aspx', null, function(data) {
    $('#default').append(data);
}, 'html');

如果代码没有以脚本块的形式执行,我理解加载的库,但是任何脚本块或内联javascript在动态加载时都不会执行。您必须提出一个解决方案,该解决方案将评估返回的脚本块,以使其有效。我会看看我是否能从原型中挖掘出一个例子,我记得他们有一个

更新:

这是直接从原型

  ScriptFragment: '<script[^>]*>([\\S\\s]*?)<\/script>'

  extractScripts: function() {
    var matchAll = new RegExp(Prototype.ScriptFragment, 'img');
    var matchOne = new RegExp(Prototype.ScriptFragment, 'im');
    return (this.match(matchAll) || []).map(function(scriptTag) {
      return (scriptTag.match(matchOne) || ['', ''])[1];
    });
  }

  evalScripts: function() {
    return this.extractScripts().map(function(script) { return eval(script) });
  }

当然,您可以根据自己的需要简化它,但当动态返回页面时,您必须手动评估所有脚本,因为浏览器不会自动评估注入元素的脚本。

是未执行的代码,呈现为脚本块,我了解加载的库,但是当像这样动态加载时,任何脚本块或内联javascript都不会执行。您必须提出一个解决方案,该解决方案将评估返回的脚本块,以使其有效。我会看看我是否能从原型中挖掘出一个例子,我记得他们有一个

更新:

这是直接从原型

  ScriptFragment: '<script[^>]*>([\\S\\s]*?)<\/script>'

  extractScripts: function() {
    var matchAll = new RegExp(Prototype.ScriptFragment, 'img');
    var matchOne = new RegExp(Prototype.ScriptFragment, 'im');
    return (this.match(matchAll) || []).map(function(scriptTag) {
      return (scriptTag.match(matchOne) || ['', ''])[1];
    });
  }

  evalScripts: function() {
    return this.extractScripts().map(function(script) { return eval(script) });
  }

当然,您可以根据自己的需要简化它,但是当动态返回页面时,您必须手动评估所有脚本,因为浏览器不会自动评估注入元素的脚本。

我不认为这是一种安全功能。这个过程是通过ajax读取字符串。2将字符串转换为DOM元素。3将其插入文件中。正在运行的任意脚本在步骤3中出现。在步骤1之后,字符串不再是ajax响应。我不认为这是一个安全特性。这个过程是通过ajax读取字符串。2将字符串转换为DOM元素。3将其插入文件中。正在运行的任意脚本在步骤3中出现。在步骤1之后,字符串不再是ajax响应。