Javascript 根据location.host和cookie替换页面上的链接

Javascript 根据location.host和cookie替换页面上的链接,javascript,jquery,Javascript,Jquery,我正在使用jquery重写页面上的链接列表。如果location.host不是vendor location.host,并且cookie未设置为特定值,则它将定位链接并将其重写为备用值。我使用的代码在FF中工作得很好,但在IE7中不行。请帮忙 <script type="text/javascript"> // link hider var hostadd = location.host; var vendor = '172.29.132.34

我正在使用jquery重写页面上的链接列表。如果location.host不是vendor location.host,并且cookie未设置为特定值,则它将定位链接并将其重写为备用值。我使用的代码在FF中工作得很好,但在IE7中不行。请帮忙

<script type="text/javascript"> 
    // link hider       
    var hostadd = location.host;
    var vendor = '172.29.132.34';
    var localaccess = 'internal.na.internal.com';
    var unlock = 'http://internal.na.internal.com/Learning/Customer_Care/navigation/newhire.html';



    // link rewriter                            
    $(document).ready (
        function style_switcher(){ 
            //if not a vendor or not accessing from lms reroute user to lms
            if (hostadd != vendor && $.cookie("unlockCookie") != unlock){
                var linkData = {
                "https://www.somesite.com":             "https://internalsite.com/something",'../Compliance/something/index.html':'../somethingelse.html'

            };
            $("a").each(function() {
                 var link = this.getAttribute("href");  // use getAttribute to get what was actualy in the page, perhaps not fully qualified
                if (linkData[link]) {
                this.href = linkData[link];
            }
            });
        }
    });     
</script>

//链接隐藏器
var hostadd=location.host;
var供应商='172.29.132.34';
var localaccess='internal.na.internal.com';
var解锁http://internal.na.internal.com/Learning/Customer_Care/navigation/newhire.html';
//链接重写器
$(文件)。准备好了吗(
函数样式切换器(){
//如果不是供应商或不从lms访问,则将用户重新路由到lms
if(hostadd!=供应商和$cookie(“解锁cookie”)!=解锁){
var linkData={
"https://www.somesite.com":             "https://internalsite.com/something“,'../Compliance/something/index.html':'../somethingelse.html”
};
$(“a”)。每个(函数(){
var link=this.getAttribute(“href”);//使用getAttribute获取页面中实际的内容,可能不是完全限定的
if(linkData[link]){
this.href=linkData[link];
}
});
}
});     

如果插入动态链接,您可以将它们存储在一个数据属性中,如data orglink=“yourlink”,该属性不会被浏览器转换,然后检查该属性-如果它在对象数组中-更改href。您有权创建数据属性吗


IE7在内部链接方面存在问题,因为它在JS到达链接之前就打开了主机信息

除了IE7之外,所有的都能用。因此,如果要将JS用于此函数,则需要使用完整路径:(


你的JS中有一些错误

但它似乎工作得很好

见:


还是我遗漏了什么?:)

到底是什么不起作用?您是否遇到错误,是否尝试过使用断点来查看失败的地方?我不熟悉断点…所以没有,我没有尝试过。我没有收到错误…它只是没有重写链接。实际上,当我在IE7中打开JSFIDLE时,它也不起作用。hello仍然在if(linkData[link])上路由到Its,但失败。。那该怎么办?:)它应该查看页面上的所有链接以查找匹配项…如果它找到匹配项,则将其替换为备用url。