【问题标题】:Jumping to a new HTML page with JavaScript使用 JavaScript 跳转到新的 HTML 页面
【发布时间】:2010-10-01 08:09:26
【问题描述】:

在我的 HTML 页面中,我需要检查是否安装了 Adob​​e Flash 播放器。如果没有,我想自动跳转到另一个 HTML 页面,告诉用户需要 Flash 播放器。

我正在使用 JavaScript 检查 Flash 播放器是否可用,使用的是“JavaScript Flash detection library”。

我的 HTML 页面的正文如下所示:

<body>
    <script type="text/javascript"> 
    if(!FlashDetect.installed)
    {
        alert("Flash 9.0.115 is required to enjoy this site.");
    }
    </script>
    ...
    ...

检测正常:我可以看到警报,但我没有找到跳转到另一个 HTML 页面的方法。

有什么提示吗?

编辑:有一些我没有提到的东西似乎有所不同:HTML 页面是本地页面(从 CD-ROM 运行),我想跳转到位于当前目录中的 HTML 页面。

【问题讨论】:

  • 如果有人想使用网站而不是享受它,而他没有 Flash 播放器,会发生什么情况?

标签: javascript redirect


【解决方案1】:
window.location.href = "http://stackoverflow.com";

对于本地文件,如果您知道相对路径,这应该可以工作:(在您的情况下,这可以工作。)

window.location.href = "someOtherFile.html";

也许你也可以绝对使用这个:(未测试。)

window.location.pathname = "/path/to/another/file.html/";

问题在于浏览器供应商的安全措施。谷歌有一些关于它的good information

【讨论】:

  • +1 比 document.location 更安全,尽管我自己总是忘记这一点
  • 我不知道有那个。 ;)(无知安全)
  • 有点老派,可能是不安全的代名词:P
  • 实际上它正在使用http地址,但就我而言,我想跳转到本地html页面。我实际上正在创建一个用于演示的 CD ROM,我想跳转到 CD-ROM 的 HTML 页面。
  • 它现在可以工作了:我有一个 IE7 的错误,因为 HTML 标签和 HEAD 标签之间有一个 html 注释!
【解决方案2】:

非常警惕即时 JavaScript 重定向。 Flash 检测脚本可能是错误的 (*),因此最好允许用户通过某种手动覆盖或仅使用后备内容自行决定是否使用 Flash。

写入 location.href 有效,但可能“破坏后退按钮” - 如果用户按下后退并且您的页面再次将他们重定向到转发页面,他们不太可能感到高兴。 location.replace('...') 避免了这个问题。

(* - 有两种检测 Flash 的方法,但都不可靠。创建 Flash 实例并对其进行嗅探会破坏 FlashBlock 等软件或只是加载缓慢,并且直接嗅探插件不标准化并且可能会中断更晦涩的平台。Adobe 自己在http://www.adobe.com/devnet/flashplayer/articles/future_detection_print.html 的代码最终诉诸于嗅探 UA 字符串,呃。)

【讨论】:

    猜你喜欢
    • 2015-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-24
    • 1970-01-01
    • 2016-06-17
    相关资源
    最近更新 更多