当前位置: 首页 > 面试题库 >

jQuery-HTML中的脚本标签由jQuery解析并且不执行

马沛
2023-03-14
问题内容

我有这样的HTML页面:

<html>
<body>
<div id='something'>
    ...
    <script>
    var x = 'hello world';
    </script>
    ...
</div>
</body>
</html>

在另一页上,我正在这样做:

$.ajax({
    url: 'example.html',
    type: 'GET',
    success: function(data) {
        $('#mydiv').html($(data).find('#something').html());
        alert(x);
    }
});

jQuery,但是,没有执行在第一个文件中的javascript,即使文档中说的那样。我该怎么做呢?

编辑:不幸的是,在现实世界中的应用程序中,我无法控制“包含”页面的内容。
我们在同一个域中,但是我不能修改它输出的代码,因为它是打包产品,IT部门不允许我们对其进行修改。


问题答案:

正如Pointy 指出的双关语 ),当您将HTML传递给时,jQuery会混淆SCRIPT标签$()。它不会删除它们-
只是将它们添加到HTML生成的DOM集合中。您可以像这样执行脚本:

$.ajax({
    url: 'example.html',
    type: 'GET',
    success: function(data) {

        var dom = $(data); 
        $('#mydiv').html(dom.find('#something').html());
        dom.filter('script').each(function(){
            $.globalEval(this.text || this.textContent || this.innerHTML || '');
        });
    }
});


 类似资料:
  • 问题内容: 我需要用ajax调用产生的html替换页面中div的内容。问题是html中包含一些必要的脚本,并且jquery html()函数似乎将它们剥离了,我需要过滤响应并仅获取特定的div。 我正在考虑一种解决方法,该方法是从ajax响应中提取所有脚本标签,然后将其附加到DOM中,但是这样做很麻烦。 这是我的代码; 但这是任何结论。我尝试了那里提出的解决方案,但没有一个起作用。 编辑:我似乎找

  • 问题内容: 是否有任何Python库可以让我解析类似于HTML文档的HTML文档? 即我希望能够使用 CSS选择器语法 从文档中获取任意节点集,读取其内容/属性,等等。 我之前使用过的唯一Python HTML解析库是 BeautifulSoup ,尽管很好,但我一直认为如果可以使用jQuery语法,解析起来会更快。:D 问题答案: 如果您能熟练使用BeautifulSoup,则只需将soupse

  • 问题内容: 因为正则表达式使我感到恐惧,所以我试图找到一种方法来删除所有HTML标记并从Python中的字符串解析HTML实体。 问题答案: 使用lxml是最适合python的xml / html库。 如果您只想清理html,请查看lxml.html.clean模块

  • 问题内容: 我从其他页面加载HTML以提取并显示该页面中的数据: 确实可以,但是由于我的浏览器尝试加载在205.html中链接的图像。这些图像在我的域中不存在,因此出现很多404错误。 有没有办法像解析页面一样但不将整个页面加载到浏览器中? 问题答案: 实际上,如果您查看jQuery文档,它说您可以将“所有者文档”作为第二个参数传递给。 因此,我们可以做的是创建一个虚拟文档,以使浏览器不会自动加载

  • 问题内容: 我使用jQuery的.load函数将一些HTML代码加载到div中,其中包含要执行的一些代码; 加载ajax请求后,alert(); 函数起作用,但是someFunction无法起作用。 如何从Ajax调用执行此功能 执行的功能也不起作用。 问题答案: 可能您应该使用jQuery.getScript从服务器加载一些javascript并执行它。 更新: 在大多数情况下,仅加载纯HTML

  • 问题内容: 我想通过jQuery创建脚本标签。 我使用以下代码: 没用 您将如何实现它? 问题答案: 你应该这样做