在javascript中使用window.location更改浏览器窗口

时间:2011-09-01 14:42:18

标签: javascript

我的网站有两种语言,英语和法语。现在我不知道java脚本,我创建了一个代码,用于根据您想要使用的语言使用javascript显示不同的图片。

因此,如果您访问www.my-site.com/en/,您会看到相同的En_pic_图片相同。

/*These are the Popup images for the English and French portal */

var url1 = 'http://www.my-site.com/fr/';
var url2 = 'http://www.my-site.com/en/';
MagnifImage.setup(
if (window.location = 'url2'){  
"En_pic_1", "/images/1.png","",
"En_pic_2", "/img/content/tracking_instructions/2.png",  "",
"En_pic_3", "/img/content/tracking_instructions/3.png", "",
"En_pic_4", "/img/content/tracking_instructions/4.png", "",
}else{
"Fr_pic_1", "/img/content/tracking_instructions/1_fr.png", "",
"Fr_pic_2", "/images/mon-compte.png","",
"Fr_pic_3", "/img/content/tracking_instructions/3_fr.png","",
"Fr_pic_4", "/img/content/tracking_instructions/4_fr.png",""
}
);

一切正常但是如果我在另一个语言页面上,我会收到一个警告框,说没有Fr_pic_1或En_pic_1。(取决于我当前所在的页面)我发现完成此代码的代码如下:

if( !(objRef.trigElem=document.getElementById( idParts[0] )) )
 alert("There is no element with the ID:'"+idParts[0]+"'\n\nCase must match exactly\n\nElements must be located ABOVE the script initialisation.");
else
{
 if(objRef.trigElem.parentNode && objRef.trigElem.parentNode.tagName=='A')
  objRef.trigElem=objRef.trigElem.parentNode;

 objRef.classId=idParts[1] || "MagnifImage" ;
 objRef.imgObj=new Image();

 objRef.imgObj.imgIndex=i;
 objRef.imgObj.hasLoaded=0;

我在http://scripterlative.com?magnifimage

找到的代码

请帮忙......

1 个答案:

答案 0 :(得分:2)

您需要修复多项内容:

  1. 您必须使用=====进行比较。一个=是分配,而不是比较。
  2. 您必须与变量名称url2进行比较,而不是引用字符串'url2'
  3. 您必须修改将备用参数传递给函数MagnifImage.setup()的方式。
  4. 我切换到使用window.location.href,因为window.location是一个对象,我发现最好使用你想要的那个对象的实际属性,而不是依赖于隐式转换。
  5. 将您的代码更改为:

    /*These are the Popup images for the English and French portal */
    
    var url1 = 'http://www.my-site.com/fr/';
    var url2 = 'http://www.my-site.com/en/';
    if (window.location.href == url2) {  
        MagnifImage.setup("En_pic_1", "/images/1.png","",
            "En_pic_2", "/img/content/tracking_instructions/2.png",  "",
            "En_pic_3", "/img/content/tracking_instructions/3.png", "",
            "En_pic_4", "/img/content/tracking_instructions/4.png", "");
    } else {
        MagnifImage.setup("Fr_pic_1", "/img/content/tracking_instructions/1_fr.png", "",
            "Fr_pic_2", "/images/mon-compte.png","",
            "Fr_pic_3", "/img/content/tracking_instructions/3_fr.png","",
            "Fr_pic_4", "/img/content/tracking_instructions/4_fr.png","");
    }
    

    您的代码可能导致许多错误,因此根本无法执行。您应该学习如何查找javascript错误。每个浏览器都有一个错误控制台,可以显示javascript解析或执行错误。许多浏览器现在都有一个内置调试器而不是一个控制台,它还会向您显示这些信息,并允许您查看导致错误的确切源代码行。我使用Chrome,它有一个内置的调试器,可以做到这一点。 Firefox有一个名为Firebug的免费插件,可以执行此操作。