0

如果满足条件,我想在我的 javascript 代码中包含一个名为 top.php 的 php fie。这是用于检查浏览器版本的代码。我需要检查浏览器名称,如果它的 chrome 则只需要显示 top.php 文件。但是在每个浏览器的这段代码中,它都包含该页面。

<script type="text/javascript">
    var nVer = navigator.appVersion;
    var nAgt = navigator.userAgent;
    var browserName  = navigator.appName;
    var fullVersion  = ''+parseFloat(navigator.appVersion); 
    var majorVersion = parseInt(navigator.appVersion,10);
    var nameOffset,verOffset,ix;

    // In Opera, the true version is after "Opera" or after "Version"
    if ((verOffset=nAgt.indexOf("Opera"))!=-1) {
     browserName = "Opera";
     fullVersion = nAgt.substring(verOffset+6);
     if ((verOffset=nAgt.indexOf("Version"))!=-1) 
       fullVersion = nAgt.substring(verOffset+8);
    }
    // In MSIE, the true version is after "MSIE" in userAgent
    else if ((verOffset=nAgt.indexOf("MSIE"))!=-1) {
     browserName = "Microsoft Internet Explorer";
     fullVersion = nAgt.substring(verOffset+5);
    }
    // In Chrome, the true version is after "Chrome" 
    else if ((verOffset=nAgt.indexOf("Chrome"))!=-1) {
     browserName = "Chrome";
     fullVersion = nAgt.substring(verOffset+7);
    }
    // In Safari, the true version is after "Safari" or after "Version" 
    else if ((verOffset=nAgt.indexOf("Safari"))!=-1) {
     browserName = "Safari";
     fullVersion = nAgt.substring(verOffset+7);
     if ((verOffset=nAgt.indexOf("Version"))!=-1) 
       fullVersion = nAgt.substring(verOffset+8);
    }
    // In Firefox, the true version is after "Firefox" 
    else if ((verOffset=nAgt.indexOf("Firefox"))!=-1) {
     browserName = "Firefox";
     fullVersion = nAgt.substring(verOffset+8);
    }
    // In most other browsers, "name/version" is at the end of userAgent 
    else if ( (nameOffset=nAgt.lastIndexOf(' ')+1) < 
              (verOffset=nAgt.lastIndexOf('/')) ) 
    {
     browserName = nAgt.substring(nameOffset,verOffset);
     fullVersion = nAgt.substring(verOffset+1);
     if (browserName.toLowerCase()==browserName.toUpperCase()) {
      browserName = navigator.appName;
     }
    }
    // trim the fullVersion string at semicolon/space if present
    if ((ix=fullVersion.indexOf(";"))!=-1)
       fullVersion=fullVersion.substring(0,ix);
    if ((ix=fullVersion.indexOf(" "))!=-1)
       fullVersion=fullVersion.substring(0,ix);

    majorVersion = parseInt(''+fullVersion,10);
    if (isNaN(majorVersion)) {
     fullVersion  = ''+parseFloat(navigator.appVersion); 
     majorVersion = parseInt(navigator.appVersion,10);
    }

    document.write(''
     +'Browser name  = '+browserName+'<br>'
     +'Full version  = '+fullVersion+'<br>'
     +'Major version = '+majorVersion+'<br>'
     +'navigator.appName = '+navigator.appName+'<br>'
     +'navigator.userAgent = '+navigator.userAgent+'<br>'
    )
    var OSName="Unknown OS";
    if (navigator.appVersion.indexOf("Win")!=-1) OSName="Windows";
    if (navigator.appVersion.indexOf("Mac")!=-1) OSName="MacOS";
    if (navigator.appVersion.indexOf("X11")!=-1) OSName="UNIX";
    if (navigator.appVersion.indexOf("Linux")!=-1) OSName="Linux";
    document.write('Your OS: '+OSName+'<br>');
    if(browserName ==  'Chrome')
    {
    document.write("u r using chrome "+fullVersion);
    <?php include("top.php") ?> ;

    }
    else {
    alert("Not chrome");
    }
    </script>
4

4 回答 4

2

你不能也不应该。浏览器不执行任何 PHP 代码。

我需要检查浏览器名称,如果它的 chrome 则只需要显示 top.php 文件。但是在每个浏览器的这段代码中,它都包含该页面。

我反对在服务器端做这样的事情,但如果你必须这样做,你可以尝试通过检查请求标头通过 PHP 来检查浏览器。

尝试检查$_SERVER['HTTP_USER_AGENT']

另见: http: //php.net/manual/en/function.get-browser.php

于 2012-06-27T06:17:56.087 回答
1

PHP 是一种服务器端语言。它在服务器内部运行。

Javascript是客户端语言。从某种意义上说,它在浏览器中运行

您不能从客户端包含 aphp 文件。浏览器只能理解html、js css等

您必须检查服务器阵列中的用户代理并相应地加载页面。你可以使用

$_SERVER['HTTP_USER_AGENT']; 或 getBrowser()

于 2012-06-27T06:18:52.943 回答
1

为了破译您的用户正在使用什么浏览器并根据结果包含单独的 PHP 文件,您可以使用$_SERVER['HTTP_USER_AGENT'];甚至内置getBrowser()函数 - http://php.net/manual/en/function.get-browser.php

<?php
  $browser = get_browser(null, true);
  print_r($browser);
?>

这段代码应该给你一个类似于这个的数组 -

Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7) Gecko/20040803 Firefox/0.9.3

Array
(
    [browser_name_regex] => ^mozilla/5\.0 (windows; .; windows nt 5\.1; .*rv:.*) gecko/.* firefox/0\.9.*$
    [browser_name_pattern] => Mozilla/5.0 (Windows; ?; Windows NT 5.1; *rv:*) Gecko/* Firefox/0.9*
    [parent] => Firefox 0.9
    [platform] => WinXP
    [browser] => Firefox
    [version] => 0.9
    [majorver] => 0
    [minorver] => 9
    [cssversion] => 2
    ...
)

然后,您可以测试以查看您的用户正在使用什么浏览器并相应地包含单独的文件。

于 2012-06-27T06:22:50.300 回答
0

它不可能在 js 文件中包含 php 代码。对我来说最好的方法是

将此js脚本放在头部而不是检查条件浏览器。

if(browser =='chrome')
{
  document.getElementById('top').style.display='block';
}
else
{
  document.getElementById('top').style.display='none';
}

<div id='top'>
    <?php require_once("top.php"); ?>
</div>
于 2012-06-27T06:22:06.703 回答