【问题标题】:Why does chrome.storage.local.get cause an XML page to crash?为什么 chrome.storage.local.get 会导致 XML 页面崩溃?
【发布时间】:2012-09-22 21:41:51
【问题描述】:

我正在开发一个谷歌浏览器扩展。一切正常,除了在查看 XML 文件(例如站点地图)时扩展导致页面崩溃。

我已将问题缩小到使用 chrome.storage.local,并且在取出时不会出现问题。

我意识到这不是一个大问题,因为大多数人很少在浏览器中查看 XML 文件,但作为开发人员,我经常查看站点地图和其他 XML 文件,这真的让我很烦。

我无法在 google 上找到有关此的任何其他信息。这是 chrome.storage 的错误还是完全是其他问题?

谢谢,

【问题讨论】:

  • 听起来像一个错误。请创建一个最小的测试用例,并将错误提交给new.crbug.com

标签: google-chrome google-chrome-extension local-storage


【解决方案1】:

已提交错误报告:https://code.google.com/p/chromium/issues/detail?id=151838&q=chrome.storage%20XML&colspec=ID%20Pri%20Mstone%20ReleaseBlock%20OS%20Area%20Feature%20Status%20Owner%20Summary

与此同时,我正在使用此代码作为解决方法:

var isXML = new RegExp(".+\\.[Xx][Mm][Ll](\\?|$)", "i").test(window.location.href);
if (isXML == false) { RunExtension(); }

希望这对其他人有所帮助。

【讨论】:

  • URL 不是检测 XML 的好方法。你可以改用if (document.doctype !== null) RunExtension();
  • @RobW 这不只是检查 doctype 是否已设置,而不是它设置为什么?如果页面没有声明文档类型,它也会起作用吗?
  • 是“检查文档类型是否已设置”。但是检查 URL 的结尾仍然很弱。查看生成的 XML 文件源时,我注意到 Chrome 插入了一个 ID 为 xml-viewer-style 的样式表。所以,支票可能是if (!document.getElementById('xml-viewer-style')) {RunExtension();}
  • 是的,我同意检查 url 很弱,(我想不出更好的解决方法)例如,如果默认文档是 xml 文件,它会失败,但是什么时候会发生这种情况? “普通”用户查看 xml 代码的情况非常罕见。 'xml-viewer-style' 的好地方,我非常喜欢。如果您愿意将其写出来作为答案,我会将其标记为正确。感谢您的帮助。
  • 虽然我的评论很有帮助,但它并没有回答问题,因此是评论。
猜你喜欢
  • 2014-08-23
  • 1970-01-01
  • 2021-06-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-03
  • 1970-01-01
相关资源
最近更新 更多