2013-04-17 34 views
3

我们的商业网络为每个场地和我们所有的在线预订使用相同的PHP预订系统。目前,预订系统的格局非常平淡,而且我们所有的场馆都有自己的网站,并且有自己的风格,点击网站上的“现在预订”并加载预订系统时没有连续性。如何根据以前的URL加载不同的样式表

我想知道是否有一种方法,我们可以在预订系统着陆页上放置一些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> 

这似乎并没有工作,虽然。任何帮助,将不胜感激!

+0

在PHP中使用会话来跟踪要显示的样式表 – Populus

+0

您是否收到任何错误消息,或者您只是没有得到想要的结果? –

+0

你是否也可以控制场地网站?如果是这样,只需在链接本身中传递正确的CSS表单的查询字符串。依靠在点击后获取信息并不总是有效。 –

回答

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会话保持,如果你有改变的预订系统网站的网页。

显然这只有在您控制场地网站上的链接时才有效,但它比尝试在事实之后获得引荐来源更具可预测性和可靠性。

+0

啊哈!天才!非常感谢你!!! – Collins

+0

你很受欢迎,很高兴我能提供帮助。 –

1

尝试document.referrer。如果用户点击了一个链接以访问当前页面,这将使您获得以前的浏览器URL。

1

你可以这样做:

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

然后你可以放弃上面的代码到您的网站的<头>部分。

+0

哦,我喜欢这样的外观。我试试吧。我面临的主要问题是,我不能控制预约系统,只是场地的网站,所以我必须等待这个其他人上传它,然后才能测试它! – Collins

+0

依靠引荐者并不是一个好的选择,因为用户代理不需要随页面请求一起发送。例如,如果您点击某个链接以在新窗口或标签中打开该链接,则不存在引用链接。 – cimmanon

相关问题