[英]Extract script tags from a HTML string
或任何其他標簽:)
例如
<head>
<title>page...</title>
<script> var a = 'abc'; </script>
<script src="foo.js" type="text/javascript"></script>
</head>
<body>
...
<script src="foo2.js"></script>
</body>
(此字符串是來自ajax調用的響應)
我想得到一個包含3個字符串的數組:
<script> var a = 'abc'; </script>
<script src="foo.js" type="text/javascript"></script>
<script src="foo2.js"></script>
我怎樣才能做到這一點?
定義:externalHTML函數(從此處獲取 )
jQuery.fn.outerHTML = function(s) {
return (s) ? this.before(s).remove() : jQuery("<p>").append(this.eq(0).clone()).html();
}
然后假定您的響應存儲在可以執行的data
:
$(data).filter("script").each( function(e) {
// do something with $(e).outerHTML()
} );
使用帶有<script[^<]*</script>
模式的正則表達式。
您可以嘗試如下操作:
function getScriptsAsText() {
var div = document.createElement('div');
var scripts = [];
var scriptNodes = document.getElementsByTagName('script');
for (var i=0, iLen=scriptNodes.length; i<iLen; i++) {
div.appendChild(scriptNodes[i].cloneNode(true));
scripts.push(div.innerHTML);
div.removeChild(div.firstChild);
}
return scripts;
}
它以文本形式返回當前腳本元素的數組,包括它們的開始和結束標簽。
您也可以嘗試externalHTML,但是並沒有得到廣泛的支持。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.