我们有一个包含以下脚本块的组件,用于插入一个 js 可观察图像,该图像在出现时会更新:
<script type="text/javascript">
document.currentScript.parentNode.insertAdjacentHTML('afterbegin', '<span class="js-dom-observable js-dom-observable--picture"><img src="http://www.fillmurray.com/200/300" data-src="http://www.fillmurray.com/500/500" alt="Image"></span>');
</script>
当组件直接加载到页面上时,这很有效,但是,当它由于 ajax 调用而在 html 中并附加到页面时,它不再添加图像 - 我猜这是因为document.currentScript
没有更长的脚本标签,但正在执行 ajax 的脚本:
$.ajax({
url: `/${APP_NAME}${filterResultEndpoint}`,
type: 'POST',
traditional: true,
data: searchData.getPostData(),
success: result => {
$('.results').html(result);
},
});
有没有办法让insertAdjacentHTML
脚本标签中的这个在ajax调用中工作 - 如果我insertAdjacentHTML
用一个简单的替换document.write
它,它在这两种情况下都可以工作,但我无法使用它,因为它会使我们的编码分析策略失败