我正在尝试突出显示iframe内的文字。
在iframe之外,它完美运行:
$('p').highlight('text');
要突出显示iframe中的文字,我使用了以下代码,但它不起作用:
$( 'iframe' ).contents().find('html').highlight('domain');
https://jsfiddle.net/1tvsj8ho/
在jsfiddle上你可能会收到一个错误(阻止一个包含原点的帧),但对我来说这并不重要,因为我使用的是本地文件。
答案 0 :(得分:0)
假设文件在真实(非file://
)URL上位于同一个域中,因此您无需担心CORS限制,您应该可以通过等待iframe的load事件来执行此操作在调用高亮功能之前激活:
$(function() { // document ready for parent window
// highlight in the parent:
$('p').highlight('text');
// highlight inside iframe...
$('iframe').on('load', function() { // ...when it's ready
$(this).contents().find('p').highlight('text')
});
});
(遗憾的是很难在片段中证明这一点,因为那些CORS限制非常相似,但是我已经在我自己的localhost上测试了它,如果父窗口中定义了highlight()
函数,它确实有效。)