簡體   English   中英

解析包含腳本標簽和document.write的HTML字符串

[英]Parse HTML string containing script tag and document.write

我有下面的字符串。 它具有嵌套的document.write字符串語句。 我想將最里面的腳本的文本內容添加到文檔中。

"document.write('<script>document.write(\"<script>document.write(\"Hello World\");<\/script>\");<\/script>')"

如何解析此字符串,以便將Hello World添加到文檔中。 例如,html輸出可以如下。(可以在body或div中,一切正常。)

<body>Hello World</body>

PS可以有任意數量的嵌套document.write語句。 需要解析該字符串,它可以處理n級嵌套。

好吧,我現在想通了。

    var str = "document.write('<script>document.write(\"<script>document.write(\"Hello World\");<\/script>\");<\/script>')";
    var aStr, scriptEle = document.createElement('script');
    aStr = str.replace(/["']/g, '"');
    aStr = aStr.replace(/"<script>document.write/g, "");
    aStr = aStr.replace(/;<\/script\>"/g, "");
    scriptEle.innerHTML = aStr;
    // console.log(aStr);
    document.body.appendChild(scriptEle);

這也可以處理n級嵌套。

您基本上必須告訴腳本執行<script>標記內的<script> 您可以通過執行此操作

var code = "<script>document.write(\"Hello World\");</scr"+"ipt>";
$('body').append($(code)[0]);

它將愉快地在body標簽中顯示hello world。 通過將腳本附加到任何標簽上,可以使用此方法來執行腳本。 這是jsfiddle和一個SO答案 ,它可以使您了解如何執行動態附加的js。

希望有幫助:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM