<div class="pui-text-sm" id="single_beforeend{$article.ID}">
<script type="text/javascript">
atOptions = {
'key': 'abc',
'format': 'iframe',
'height': 60,
'width': 468,
'params': {}
};
</script>
<script type="text/javascript" src="https://www.123.com/abc/invoke.js"></script>
</div>
<script type="text/javascript">
let Clicked{$article.ID} = 'no'; // 初始化状态
// 创建并插入 iframe
function createIframe{$article.ID}() {
const iframe = document.createElement('iframe');
iframe.src = 'https://www.123.com/abc/invoke.js'; // 设置 iframe 的 src
iframe.style.display = 'none'; // 可以隐藏 iframe
document.getElementById('single_beforeend{$article.ID}').appendChild(iframe);
checkInvokeStatus{$article.ID}();
}
// 检查和调用状态
function checkInvokeStatus{$article.ID}() {
fetch('https://www.123.com/abc/invoke.js', { method: 'GET', mode: 'cors' })
.then(response => {
if (response.ok) {
console.log('response.ok', response.status);
updateContent{$article.ID}();
const iframe = document.getElementById('#single_beforeend{$article.ID} iframe');
const messageHandler = (event) => {
if (event.origin === 'https://www.123.com') { // 确保来源是可信的
if (event.data === 'clicked') {
const Clicked{$article.ID} = 'ok'; // 确保 Clicked 在这里被声明
setTimeout(updateContent, 10000);
} else {
console.log('error clicked:', event.data);
}
} else {
console.log('error origin:', event.origin);
}
};
// 添加事件监听器
window.addEventListener('message', messageHandler);
} else {
console.error('error invoke.js Fetch failed with status:', response.status);
showNoAd{$article.ID}(); // 显示广告获取失败
}
})
.catch(error => {
console.error('Error fetching invoke.js:', error);
showNoAd{$article.ID}(); // 显示广告获取失败
});
}
// 监听文档加载
document.addEventListener('DOMContentLoaded', () => {
createIframe{$article.ID}(); // 创建并插入 iframe
});
document.body.addEventListener('click', function(event) {
if (event.target.matches('#single_beforeend{$article.ID} iframe')) {
window.parent.postMessage('clicked', 'https://blog.888.net');
}else{
console.log('error event.target.matches:', event);
}
});
</script>
跨域invoke.js生成的iframe,document.body.addEventListener('click', function(event) 监听不到点击事件,当前页面的本域元素点击就能监听到点击事件,请教怎么改代码?