Web 技术研究所

我一直坚信着,Web 将会成为未来应用程序的主流

不要依赖 document.origin

  最近踩到了一个 document.origin 的坑。在一些设备的微信中打开网页,document.origin 会变成一坨奇奇怪怪的字符串。程序中依赖了 document.origin 结果就挂了。规范中对 document.origin 的定义应该是只读的,然而微信改 origin 这件事确实是在规范无法约束的范畴内的。
  在 Chrome 中,document.origin 被定义在 document 的原型链上。 var doc = document.__proto__.__proto__; Object.getOwnPropertyDescriptor(doc, 'origin');   虽然直接对 document.origin 赋值无效,但如果直接给 document 对象添加一个 origin 属性就可以生效。比如:
<script> Object.defineProperty(document, 'origin', { value: 'hehe' }); alert(document.origin); // hehe </script>   虽然这么做是可耻的,可是谁能保证第三方程序没有做这些奇奇怪怪的事情呢?如果自己的应用被放在第三方的容器里跑就得考虑本来不应该有的问题。
网名:
54.144.24.*
电子邮箱:
仅用于接收通知
提交 悄悄的告诉你,Ctrl+Enter 可以提交哦
神奇海螺
[查看全部主题]
各类Web技术问题讨论区
发起新主题
本模块采用即时聊天邮件通知的模式
让钛合金F5成为历史吧!
次碳酸钴的技术博客,文章原创,转载请保留原文链接 ^_^