And*_*rde 5 javascript svg google-chrome cross-domain
我正在尝试使用父窗口中的 javascript 访问 SVG 的 DOM(通过嵌入标签和数据 url 嵌入)。然而,Chrome 将 data-url 评级为跨源。知道为什么以及如何防止这种情况吗?不幸的是,我无法控制服务器端来设置任何跨域标志或类似标志。
谢谢你,
安德烈亚斯
var c = document.getElementById("myembed");
c.onload = function() {
var s = c.getSVGDocument();
alert(s.tagName);
}Run Code Online (Sandbox Code Playgroud)
<embed id="myembed" src="data:image/svg+xml;utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%22100px%22%20height%3D%22100px%22%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20height%3D%22100%22%20width%3D%22100%22%20style%3D%22stroke%3A%23ff0000%3B%20fill%3A%20%230000ff%22%2F%3E%3C%2Fsvg%3E" type="image/svg+xml"></embed>Run Code Online (Sandbox Code Playgroud)
在这种情况下,Chrome 只是符合HTML 规范中的以下要求:
\n\n\n如果是从URL
\nDocument生成的\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0A创建时指定的唯一不透明源。data:Document
这是因为该embed元素在 DOM 中创建了一个 SVG 文档:
如果您检查该 SVG 文档的属性,您\xe2\x80\x99 将看到它origin被序列化为null(it\xe2\x80\x99s 实际上是内部唯一的起源,但只是被序列化为null。)
| 归档时间: |
|
| 查看次数: |
1146 次 |
| 最近记录: |