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

我问,因为我的网络应用程序在运行Android 4.3的Galaxy S3手机上神秘失败。 调查显示某些东西已经用HTMLBodyElement破坏了我的全局变量page 它在我的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秒内的消息框说[object HTMLBodyElement]

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

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

===============>>#1 票数:1

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

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

  ask by user3553031 translate from so

未解决问题?本站智能推荐:

3回复

短信:链接字母参数解释为三星Galaxy S7上的数字

我的网站上有一个链接,用于打开带有新消息的文本。 以下链接适用于大多数Android手机: sms:5555555555?body=JOIN 但是在Galaxy S7上,?body = JOIN参数被解释为电话号码本身的一部分,就像我们在键盘上输入的字母一样。 因此,上面的示例将
8回复

Android浏览器的screen.width,screen.height&window.innerWidth&window.innerHeight不可靠

我正在开发一个针对台式机,平板电脑和智能手机浏览器的网络应用。 该网络应用程序有一个使用Colorbox和iframe实现的灯箱 。 当调整浏览器窗口的大小或平板电脑/手机的方向发生变化时,Javascript代码会查询窗口尺寸,以便调整灯箱的某些元素。 我遇到的问题是桌面上的一切
2回复

在android的web视图上隐藏网页的页脚

这似乎是一项容易的任务,但我无法做到。 我正在网络视图上加载http://beta.tfl.gov.uk/plan-a-journey/ ,我想从显示中删除页脚: 在我的网络视图上,我尝试了几种方法,但是页面加载没有结果 有任何想法吗 ?
3回复

将网页元素绑定到Android应用程序

有一个网站有一个登录屏幕,当提交被点击时,它会转到一个新页面并登录用户。 这是一个截图: 现在,假设我的Android应用程序中有一个类似的登录屏幕,如下所示: 现在,有没有办法链接它们,所以,当我在Android应用程序中登录时,它实际上在该网站上注册一个提交并登录用户,显
1回复

Android平板电脑(三星银河标签)-方向改变时桌子混乱

我在这个小提琴中有一张简单的桌子 http://jsfiddle.net/FzSwP/3/ 的CSS table { width: 100%; } td { padding: 10px; border: 1px solid #ccc; } .name {
1回复

有没有办法检测窗口调整大小事件是否是由Android的弹出键盘引起的?

我正在写一个网页,它将完全支持移动浏览器。 该页面当前使用KnockoutJS根据屏幕(或容器)大小动态重新计算组件大小(并隐藏一些组件)。 我的android浏览器有问题: 当您单击文本字段时,弹出键盘会导致屏幕调整大小,从而导致KnockoutJS(正确)重新渲染显示。
1回复

上传图片不仅在Android本机浏览器上有效

我在上传图片的这段代码中遇到了问题。 它在本机android浏览器上不起作用(在银河笔记2上尝试过)。 它可以在不同计算机上的所有其他浏览器上正常工作。 如果有人以前遇到过此问题,或者可以找出出了什么问题,请提供帮助。 这是模板-> image_upload_view.hbs
1回复

视口在Android横向/纵向上有所不同

我正在开发一个移动网站...为了测试这一点,我为Android创建了不同的模拟器并使用了iPhone模拟器。 问题是如果纵向320和横向480在iPhone上的方向发生变化,则方向上的window.innerWidth会发生变化,但在android上,横向和纵向的视口是相同的(例如,在分辨率4
2回复

用JavaScript变量替换this.refresh,window.refresh

在我的手机空白index.html javascript部分中,window.refresh用于IOS,而this.refresh用于android。 我想为两者使用相同的index.html。 通过(navigator.userAgent.toLowerCase()。match(),我可以
3回复

可以在window.onerror事件的处理程序中包含非字符串变量吗?

我得到一个日志为'[对象事件]'。 任何人都可以告诉我为什么会有一个事件对象被发送到处理程序? 我们如何重现或修复它? 它只是在Android设备的网络控制上。 提前致谢。