如何根据以前的URL加载不同的样式表

时间:2013-04-17 17:02:00

标签: php css

我们的商业网络为每个场地和我们的所有在线预订使用相同的PHP预订系统。目前,预订系统的风格非常平淡,并且由于我们所有的场地都有自己的网站,有自己的风格,点击网站上的“立即预订”并加载预订系统时没有连续性

我想知道是否有一种方法可以在预订系统登录页面上放置一些javascript,这可以加载外部样式表,具体取决于客户点击的URL。

理想情况类似

<script language="javascript" type="text/javascript">
if(window.location.search.indexOf('example1.co.uk') === 0)
    document.write("<link rel=\"stylesheet\" type=\"text/css\" href=\"style1.css\" />");
</script>

<script language="javascript" type="text/javascript">
if(window.location.search.indexOf('example2.co.uk') === 0)
    document.write("<link rel=\"stylesheet\" type=\"text/css\" href=\"style2.css\" />");
</script>

这似乎不起作用。任何帮助将不胜感激!

3 个答案:

答案 0 :(得分:1)

试试document.referrer。如果用户点击链接以访问当前页面,则会显示以前的浏览器URL。

答案 1 :(得分:1)

您可以执行以下操作:

<?php
if($_SERVER['HTTP_REFERER'] == "example2.co.uk") {
    print("<link rel=\"stylesheet\" type=\"text/css\" href=\"style2.css\" />");
}
?>

然后您可以将上述代码转储到&lt; head&gt;您网站的一部分。

答案 2 :(得分:1)

如果我正确地阅读你的问题你也应该控制场地网站?如果是这种情况,则传递一个查询字符串,用于标识要在原始链接中使用的CSS工作表。

类似的东西:

<a href="http://booking_system.com/?css=1">Click to book</a>

然后根据结果运行php switch语句很简单。

<?php
$css = $_GET['css'];

switch ($css) {
    case 1:
    echo '<link rel="stylesheet" type="text/css" href="style1.css" />';
    break;
    case 2:
    echo '<link rel="stylesheet" type="text/css" href="style2.css" />';
    break;
    default:
    echo '<link rel="stylesheet" type="text/css" href="default.css" />';
    break;
}
?>

如果您必须更改预订系统网站上的页面,您甚至可以将$ css存储在PHP会话中以保留它。

显然,这只有在您控制场地网站上的链接时才有效,但它比在事后获得推荐人更容易预测和可靠。