我想将SVG加载到对象标记中并访问它的元素。由于Same-Origin-Policy,Chrome不允许这样做,即使我在网络服务器上运行它。
我能想到的唯一解决方法是将图像数据上传到服务器,将其保存为图像,然后将网址返回到此图像。
在Chrome中运行此代码段,控制台将在其下方显示错误。
<!DOCTYPE html>
<html>
<head>
<script>
window.onload = function() {
var obj = document.querySelector('#obj');
obj.data = 'data:image\/svg+xml;base64,a==';
obj.onload = function() {
doc = obj.contentDocument;
}
}
</script>
</head>
<body>
<object id="obj" type="image/svg+xml"></object>
</body>
</html>
Uncaught SecurityError:无法阅读&#39; contentDocument&#39;属性 来自&#39; HTMLObjectElement&#39;:使用原点阻止了一个框架 &#34; http://localhost&#34;从访问带有原点&#34; null&#34;的框架。该 请求访问的帧具有&#34; http&#34;的协议,帧是 access具有&#34; data&#34;的协议。协议必须匹配。