突出显示iframe中的文本

时间:2018-01-24 16:29:00

标签: javascript jquery iframe

我正在尝试突出显示iframe内的文字。

在iframe之外,它完美运行:

$('p').highlight('text');

要突出显示iframe中的文字,我使用了以下代码,但它不起作用:

$( 'iframe' ).contents().find('html').highlight('domain');

https://jsfiddle.net/1tvsj8ho/

在jsfiddle上你可能会收到一个错误(阻止一个包含原点的帧),但对我来说这并不重要,因为我使用的是本地文件。

1 个答案:

答案 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()函数,它确实有效。)