我正在使用带有data属性的对象标签以一个相对路径的形式将一个svg文档嵌入到一个HTML中,在onload事件时,我想使用getSVGDocument()获取SVGDocument.
我使用文件url访问html文件,当调用getSVGDocument时,Chrome会提供跨域错误. Chrome实际上嵌入了SVG,但是getSVGDocument不会返回SVG的DOM
Chrome错误是
“不安全的JavaScript尝试使用URL文件访问框架:/// C:/MyFiles/website/Dir1/a.svg from frame with URL file:/// C:/MyFiles/website/Dir1/index.html域,协议端口必须匹配“.
您可能会看到html和嵌入式文档svg的基本路径相同,那为什么Chrome会抛出此错误?
解决方法
您可以按照Disable same origin policy in Chrome中的说明和How can access and the origin policy in chrome as I’m not using a server的详细说明,禁用此功能,以了解如何启用Chrome.
一个警告词,虽然:他们被称为“安全限制”的原因,所以不要在浏览第三方网站时应用此.在正常浏览网页时关闭电源极其危险.例如,关闭此功能后,我现在可以代您发送请求,如gmail.com,facebook.com和yourbank.com,您的cookies将被设置为允许我自己伪装.
如果您仍然需要这样做,则需要使用–disable-web-security标志运行chrome:
chrome --disable-web-security # unix/linux only
如果您需要有关如何应用该标志的交叉操作系统说明,请参阅http://www.chromium.org/developers/how-tos/run-chromium-with-flags.