2013-02-24 64 views
1

我使用的电子商务平台bigcommerce使用全局变量动态插入数据。我无法访问操作变量服务器端所需的php。替换href的脚本http:// //

除非在结帐时,变量都呈现http:links,我想让脚本使它们相对,所以如果有人想通过https浏览:所有的菜单和分类链接都将符合。

我目前使用它来纠正我的主要资产净值,但它显然不是一个最好的情况下的解决方案,并在生成的链接的其余部分保持HTTP

<script type="text/javascript"> 
    relativeLinking(); 
    function relativeLinking(){ 
     var GLOBAL_PagePath = "%%GLOBAL_PageLink%%".substring(5); 
     document.getElementById("%%GLOBAL_PageName%%").setAttribute("href", GLOBAL_PagePath); 
    }; 
</script> 
+1

请解释一下如何拥有一个没有访问服务器端的平台? – 2013-02-24 20:31:48

+0

它被托管在提供商所拥有的服务器上,我只能在前端操作 – 2013-02-24 20:35:57

+0

因此“我的电子商务平台bigcommerce”实际上是不正确的。这不是你的。 – 2013-02-24 20:37:39

回答

2

你可以等转换使用此代码的所有链接:

$(function() { 
    $('a').each(function() { 
     var self = $(this); 
     self.attr('href', self.attr('href').replace(/.*\/\//,'//')); 
    }); 
}); 
+0

谢谢我会给它一个机会! – 2013-02-24 21:03:31

0

达斯汀,

这段JavaScript代码

var GLOBAL_PagePath = "%%GLOBAL_PageLink%%".substring(5); 
    document.getElementById("%%GLOBAL_PageName%%").setAttribute("href", GLOBAL_PagePath); 

设置属性。为什么要这样做,而不是首先提供正确的HTML。

一个假设需要W​​eb主机不知道(或关心)两个站点(http://和https://协议)上的HTML/PHP/JS等。

某些文件应该在一个站点上,也不应该在其他站点上。反之亦然。

+0

如果您要阅读我的问题,那么所讨论的html是通过后端的变量生成的。它输出“http:// ...”,我只是想让它们相对。我相信我也对此做出了明确的回应。我相信你不了解我的问题或情况的性质 – 2013-02-24 21:39:16