如果在Chrome网页浏览中加载了某个网页,如何在JavaScript中进行检测?

时间:2013-06-22 18:27:28

标签: javascript webview google-chrome-app

我正在为Chrome编写一个打包的应用程序,它有一个webview标记,我加载了我的网站。

网站JavaScript代码是否有可能检测到它是在webview中加载的? navigator.userAgent属性没有线索。

2 个答案:

答案 0 :(得分:3)

除了Jivings提到的方法之外的其他方法:

  • 在网页浏览中加载略有不同的网址,例如http://example.com?in_webview=1,并在网站投放的JavaScript中反映该网址。
  • 同样的想法,但使用#fragment。我不确定#fragment是否能正常工作,但如果确实如此,这很好,因为服务器不会被一个奇怪的查询参数混淆。
  • 使用嵌入器,将脚本插入到webview的DOM中,以执行不同的操作。

答案 1 :(得分:0)

当webview完成加载后,向页面内部发送一个事件:

webview.addEventListener("loadstop", function () {
   contentWindow.postMessage('Hello from Chrome App!', targetOrigin)
});

您的内容页面可以使用常规的postMessage API侦听此消息。如果收到一条消息,您将知道它已加载到网页视图中。