我目前正在使用 IFrame 对网站上的用户生成内容进行沙箱处理。这消除了我们主要样式表的任何样式问题。
但是,当用户使用我们的富文本编辑器生成链接时,我们希望链接在父级中打开,而不仅仅是在 IFrame 中打开链接。我意识到您可以为父级设置目标,但我们无法控制用户以及他们在内容中输入的内容。
有没有办法劫持 IFrame 中的 HREF,以便它们都以父级为目标而不修改它们?或者使用一些可以普遍注入的Javascript,这样我就不需要浏览所有内容并以编程方式替换目标?
理想情况下,一个地方的简单脚本将是最好的解决方案。
想法?
最终解决方案
我使用了我选择的答案的变体......它让我朝着正确的方向前进。
<script>
Event.observe(window, 'load', function() {
$$('a').each(function(e) {
e.writeAttribute('target', '_parent');
});
});
</script>
那在带有内容的 IFrame 内部。它最终成为该任务最简单的解决方案。