在iframe

时间:2016-11-27 06:50:46

标签: javascript iframe href

情景:

iframe正在加载包含许多不同超链接的页面。

<iframe id=output>
    <a href="somedomain1.com"> click here </a>
    <a href="somedomain2.com"> click here </a>
    <a href="somedomain3.com"> click here </a>
</iframe>

我知道我无法在iframe内的超链接上附加onclick="jsfunction()"

但是有没有办法在任何链接上点击iframe中的JS函数?

编辑: Fiddle Link

1 个答案:

答案 0 :(得分:0)

你可以这样做:

textFlow.setTextAlignment(TextAlignment.RIGHT);

https://jsfiddle.net/17o093ov/2/

请注意,这仅在iframe与父页面具有相同来源时才有效。否则,浏览器会阻止访问const iframe = document.getElementById('output'); const iframeDoc = iframe.contentDocument || iframe.contentWindow.document; iframeDoc.addEventListener('click', (e) => { console.log('click inside iframe') if (e.metaKey || e.ctrlKey || e.shiftKey) return; if (e.defaultPrevented) return; // ensure link // use shadow dom when available var el = e.path ? e.path[0] : e.target; while (el && 'A' !== el.nodeName) el = el.parentNode; if (!el || 'A' !== el.nodeName) return; console.log('click a tag inside iframe') }); 以解决安全问题。