Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.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
阻止jQuery()执行javascript_Javascript_Jquery - Fatal编程技术网

阻止jQuery()执行javascript

阻止jQuery()执行javascript,javascript,jquery,Javascript,Jquery,我正在编写一些代码,这些代码使用jQuery从web的html文档中解析数据。之所以做出这个决定,是因为jQuery具有在页面上选择对象的强大能力,这使得它非常适合解析 代码的工作原理如下(其中“html\u string”是整个网页的html): 我遇到的问题是javascript也在html_字符串中被计算和执行。这导致形成新线程,在某些情况下,这些线程包含无限循环,这些循环向服务器发出重复请求,最终导致应用程序的整个客户端(而不是服务器)崩溃 在这种情况下,有没有办法阻止javascrip

我正在编写一些代码,这些代码使用jQuery从web的html文档中解析数据。之所以做出这个决定,是因为jQuery具有在页面上选择对象的强大能力,这使得它非常适合解析

代码的工作原理如下(其中“html\u string”是整个网页的html):

我遇到的问题是javascript也在html_字符串中被计算和执行。这导致形成新线程,在某些情况下,这些线程包含无限循环,这些循环向服务器发出重复请求,最终导致应用程序的整个客户端(而不是服务器)崩溃

在这种情况下,有没有办法阻止javascript的执行。在这种情况下,javascript的执行是不必要的副作用


非常感谢

一种方法是在用jQuery包装html字符串之前先解析它

比如:

var page = html_string;


//then find the script tag (untested code)
int beginning_of_script = page.indexOf('<script>');
int end_of_script = page.indexOf('</script>');

// remove the script
page = page.remove(beginning_of_script, end_of_script);
var page=html\u字符串;
//然后找到脚本标记(未测试的代码)
脚本的int开头=page.indexOf(“”);
脚本的int-end\u=page.indexOf(“”);
//删除脚本
page=page.remove(脚本的开头,脚本的结尾);

下面是一个蹩脚的小JSFIDLE,它向您展示了当您将html\u字符串加载到$中时js不会运行。单击“运行”时,您将看到一个即时警报“wtf”。三秒钟后,html被加载到$,主体被更新为“moo”,您不应该看到警报


您可以先将此语法作为注释加载到浏览器中

<script>
/* var page = $(html_string); */
</script>

/*变量页=$(html_字符串)*/
然后在以后提取注释的内容。这里的优点是浏览器不会在页面加载时解析和执行注释


您也可以使用jQuery的函数进行探索,但不确定这是否适合您的需要。

如果您不在乎有一个额外的元素,请检查此项

这行代码不会执行任何脚本。你的问题在其他地方。你是如何提取html的?(添加到@GolezTrol的注释中;你可以通过比较看到这一点)GolezTrol在某种程度上是正确的,如果它实际上是一个字符串,为什么还要使用jQuery选择器呢?只需将字符串指定为string,
var page=html\u string否则jQuery肯定会执行选择器函数,试图找到与作为选择器的字符串匹配的对象。但没有回报,也没有内因。循环将使页面崩溃。@tumharyyaden它可用于JQueryfy字符串。它允许您解析html并查找单个节点,就像在普通文档中一样。它不会回答问题,但它确实表明问题是错误的。:)
<script>
/* var page = $(html_string); */
</script>