[英]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.