如何删除/停止脚本在jquery中执行

how to remove/stop script from being executed in jquery

本文关键字:脚本 jquery 执行 何删除 删除      更新时间:2023-09-26

我想使<script> ...... </script>作为文本(或不可执行的代码),这是使用ajax从另一个页面返回。

<div id="page"></div>
 $.ajax({
        url: "http://example.com",
        type: "GET",
        crossDomain: true,
        dataType: "text/html",
        success: function(response) {
            console.log(response);
            $('#page').append(response);
        },
        error: function(xhr, status) {
            alert("error");
        }
    });

我的问题是,上面的代码执行脚本内存在的response如果发生错误,我的进一步的页面将不会执行,程序将停止。所以我想制作script not executable我该怎么做?

或者我怎么做任何code inside script blank

假设我的脚本是这样的
<script type="text/javascript">
  // some erroneous code or some resource load which failed verification
  console.log('i want to remove every code');
</script>

使用"

"或(html5支持)标签来显示代码

我认为你必须做三个步骤

  1. 将接收到的htmlstring转换为DOM元素,如

      parser = new DOMParser()
                doc = parser.parseFromString(response, "text/xml");
    

var doc = document.createElement('div');
doc.innerHTML = response;
  • 然后查找所有脚本标签init

    allScriptTags = doc.find( "script" )

  • 之后在allScriptTags上运行循环并删除所有脚本标签

  • allScriptTags.forEach(
      function(item) {
          item.remove();
          // or item.parentNode.removeChild(item); for older browsers (Edge-)
    });
    
    最后,

         $.ajax({
                url: "http://example.com",
                type: "GET",
                crossDomain: true,
                dataType: "text/html",
                success: function(response) {
                    console.log(response);
                    parser = new DOMParser()
                    doc = parser.parseFromString(response, "text/xml");
                    allScriptTags = doc.find( "script" )
                    allScriptTags.forEach(
                        function(item) {
                            item.remove();
                            // or item.parentNode.removeChild(item); for older browsers (Edge-)
                    });
                    $('#page').append(doc);
                },
                error: function(xhr, status) {
                    alert("error");
                }
            }); 
    

    我希望这对你有帮助。

    如果它不工作,尝试使用字符串操作从remove htmlstring中删除标签。

    恰好: http://plnkr.co/edit/OUi8U945MIMFZoWQpBGy?p=preview