我有下面的textarea元素有一些模板化的代码在它,它不能被修改,因为在博客中没有选项:
<textarea hidden class='hidden' id='tempJs'><script defer='' src='/js/cookienotice.js' type="976adfed5ff69a3a2e21c1d0-text/javascript"></script>
<script type="976adfed5ff69a3a2e21c1d0-text/javascript">
document.addEventListener('DOMContentLoaded', function(event) {
// Some JS
});
</script>
<script type="976adfed5ff69a3a2e21c1d0-text/javascript" src="https://www.blogger.com/static/v1/widgets/1197256859-widgets.js"></script>
<script type="976adfed5ff69a3a2e21c1d0-text/javascript">
window['__wavt'] = 'AOuZoY7izjkWOpen881b-llDDktDVnRQIQ:1672120416426';
//...Some JS
_WidgetManager._RegisterWidget('_HTMLView', new _WidgetInfo('HTML9', 'gmp_custom_script', document.getElementById('HTML9'), {}, 'displayModeFull'));
</script></textarea>
我想从textarea.innerText中提取以下代码部分:
window['__wavt'] = 'AOuZoY7izjkWOpen881b-llDDktDVnRQIQ:1672120416426';
//...Some JS
_WidgetManager._RegisterWidget('_HTMLView', new _WidgetInfo('HTML9', 'gmp_custom_script', document.getElementById('HTML9'), {}, 'displayModeFull'));
我尝试了以下方法:
<!--[ My Script ]-->
<script>
/*<![CDATA [*/
let tempEl = document.getElementById("tempJs"),
tempTx = tempEl.innerText,
widgetJs = tempTx.split("<script type='text/javascript'>\n")[1].split("\n<\/script>")[0].trim();
tempEl.remove()
/*]]>*/
</script>
但是,问题是type属性一直在变化,而且还有四个script标记
我怎样才能从字符串中只提取出那一部分呢?
1条答案
按热度按时间w9apscun1#
将textarea文本转换为一个文档,然后你可以选择所有的script标签,然后遍历它们的
.textContent
来识别引用了__wavt
的标签。