【问题标题】:Redirect a webbrowser if chrome 18 is not found如果找不到 chrome 18,则重定向网络浏览器
【发布时间】:2017-06-11 14:05:58
【问题描述】:

我创建了这个脚本以仅在未找到 chrome 18 时隐藏页面,如果未找到 chrome 18 而不是仅隐藏页面,我如何确保将 url 重定向到外部页面? 我想重定向到这个网站http://search.aol.com/aol/webhome

<div id="hiddenContent" style="display: none;">
My hidden content.
</div>

<script>
function GetChromeVersion() {     
    var raw = navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./);
    return raw ? parseInt(raw[2], 10) : false;
}
if (GetChromeVersion() == 18)
    document.getElementById("hiddenContent").style.display = "";
</script>

【问题讨论】:

标签: url href


【解决方案1】:

这是可能的,例如通过使用:

window.location.href='http://search.aol.com/aol/webhome';

在你的函数内部。但我不建议你这样做。您永远不应该信任客户端,因为 JavaScript 可以很容易地更改,并且即使 JavaScript 重定向,如果他们愿意,即使有人愿意,他们也可以访问您的网站,并且尽可能少地修改页面源。 Javascript 在客户端处理,而 php 完全在服务器端。在这种情况下,我会使用 php 而不是 JavaScript。尝试用php检查,如果不是chrome 18,使用:header('Location: http://search.aol.com/aol/webhome');

编辑:

<?php function is_chrome() { return(eregi("chrome/18", $_SERVER['HTTP_USER_AGENT'])); }   if(is_chrome()) { header('Location: http://www.search.aol.com/aol/webhome'); } ?> 将它放在文件的顶部,应该可以工作,但还没有测试过,如果没有,只需将 eregi('chrome/18') 中的字符串更改为您需要的字符串(它是一个正则表达式)

【讨论】:

  • 不工作意味着抛出错误或只是不重定向?如果不是错误,只是没有重定向,请先执行: echo($_SERVER['HTTP_USER_AGENT']);它会将您网页上的用户代理字符串打印为文本。只需阅读它并检查搜索正则表达式的 eregi 是否与回显的用户代理字符串匹配。如果不是,请更正它(我没有测试它,所以可能代码没有正确检查字符串;我没有使用 chrome 18)
  • 所以只要否定 if: if(!is_chrome()){...}
  • 但是现在我如何在 php 代码中添加 Chrome 46 和 Chrome 18?
  • function is_chrome() { return(eregi("chrome/18", $_SERVER['HTTP_USER_AGENT']) || eregi("chrome/46", $_SERVER['HTTP_USER_AGENT'])) ; }
  • 没问题。请考虑通过单击灰色勾号图标将答案标记为正确。这会给我们俩一些声誉:-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-03-13
  • 2011-11-30
  • 2013-10-02
  • 2021-07-16
  • 1970-01-01
  • 1970-01-01
  • 2015-03-03
相关资源
最近更新 更多