javascript– 我的Galaxy S3上有什么瑕疵的window.page?

javascript– 我的Galaxy S3上有什么瑕疵的window.page?,第1张

概述有些浏览器使用window.page吗?我问,因为我的网络应用程序在运行Android4.3的GalaxyS3手机上神秘失败.调查显示某些东西已经用HTMLBodyElement破坏了我的全局变量页面.它在我的Android4.3虚拟机中运行得很好.这是一个POC:<!DOCTYPEhtml><html><head><metacharset="UT

有些浏览器使用window.page吗?

我问,因为我的网络应用程序在运行Android 4.3的galaxy S3手机上神秘失败.调查显示某些东西已经用HTMLBodyElement破坏了我的全局变量页面.它在我的AndroID 4.3虚拟机中运行得很好.这是一个POC:

<!DOCTYPE HTML><HTML>  <head>    <Meta charset="UTF-8"/>    <script type="text/JavaScript">      window.page = 0;      window.addEventListener("load", start, false);      function start()      {          if (isNaN(window.page))              alert(window.page);          setTimeout(function(){alert(window.page);}, 5000);      }    </script>  </head>  <body>    <table>      <tr>        <td>This is some text that is long enough to wrap around.</td>        <td>This is some text that is long enough to wrap around.</td>        <td>This is some text that is long enough to wrap around.</td>      </tr>    </table>  </body></HTML>

预期的行为:5秒内的消息框,表示0(分配给window.page的值).

观察到的行为:5秒钟内的消息框说
[对象HTMLBodyElement]

它似乎只是在一些非常具体的情况下重现;例如,如果表格单元格中的文本没有环绕,window.page保持为0.正如我所说,我只看到这发生在我的三星galaxy S3上;我发现我的AndroID 4.2平板电脑或桌面上的firefox,Chrome或IE都没有问题.

我可以通过简单地重命名页面来解决这个问题.但我想知道这里发生了什么,以及我的其他全局变量是否会被踩到.

解决方法:

正如RoToRa在评论中指出的那样,可能存在特定于浏览器的全局变量或插件会干扰您的脚本.最好避免使用它们.但是,如果您想要查看手机浏览器中特别发生的情况,请使用此选项列出“窗口”对象的键:

<script type="text/JavaScript">    keyList = Object.keys(window);    for(var i in keyList) {         document.write(keyList [i]+"<br>");     }</script>
总结

以上是内存溢出为你收集整理的javascript – 我的Galaxy S3上有什么瑕疵的window.page?全部内容,希望文章能够帮你解决javascript – 我的Galaxy S3上有什么瑕疵的window.page?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1117080.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存