亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

jQuery-HTML中的腳本標簽由jQuery解析并且不執行

jQuery-HTML中的腳本標簽由jQuery解析并且不執行

郎朗坤 2019-12-27 14:54:09
我有這樣的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部門不允許我們對其進行修改。
查看完整描述

3 回答

?
交互式愛情

TA貢獻1712條經驗 獲得超3個贊

作為@James答案的替代方法,可以$.parseHTML()通過注意將包含腳本的布爾標志添加到來解析HTML字符串true:


$.ajax({

    url: 'example.html',

    type: 'GET',

    success: function(data) {


        var content = $($.parseHTML(data, document, true)).find('#something');

        $('#mydiv').html(content);


    }

});

這樣,可以執行嵌入在下載文本中的任何腳本。


查看完整回答
反對 回復 2019-12-27
?
翻翻過去那場雪

TA貢獻2065條經驗 獲得超14個贊

我對此不太確定,但是可能發生的情況是,當jQuery從構建片段時$(data),腳本標記在那時丟失了。


如果您可以將包含的頁面安排成一個片段:


<div id='something'>

  <!-- ... -->

  <script>var x = 'hello world';</script>

</div>

沒有其他周圍的東西,那么您的成功回調可以做到這一點:


success: function(data) {

  $('#mydiv').html(data);

}

現在,這些腳本標簽將由jQuery html()函數注意,該函數顯式查找它們并將其刪除。但是,它確實保留了這些腳本塊,并在完成目標內容的更新后執行它們。


查看完整回答
反對 回復 2019-12-27
  • 3 回答
  • 0 關注
  • 939 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號