1

我将 iframe 的源设置为 html 字符串,如下所示,让它执行我存储在内存中的 html 字符串。

window.sHTML = html;
iframe.src = 'javascript:parent.sHTML';

html 字符串包含这样的 javascript 代码:

window.onerror = function(a,b,c) {
  console.log(a);
  console.log(b);
  console.log(c)
  return true;
}

当 iframe 中发生错误时,它会记录“脚本错误”、“”、“0”,而不是给我实际的错误信息。

我知道当有问题的 iframe 是跨域时会发生这种情况:隐秘的“脚本错误”。在 Chrome 和 Firefox 中以 Javascript 报告

但是,iframe 不是跨域的,它只是我动态创建的。有没有办法让 window.onerror 将其视为非跨域 iframe,以便我可以从 window.onerror 访问正确的错误信息?

4

1 回答 1

0

如果您需要使用 HTML 字符串动态填充 iframe 内容,document.write可能会起作用:

var iframe = document.createElement('iframe');

document.body.appendChild(iframe);

iframe.contentDocument.open();
iframe.contentDocument.write(yourHTMLString);
iframe.contentDocument.close();

参考

于 2012-09-06T13:16:57.327 回答