2013-08-29 69 views
-3

試圖跨域檢查版本。 這是JS Bin上的代碼,所以你可以看到它是如何工作的。 http://jsbin.com/iKaWEFI/12/edit?html,js,output(已解決!)如何跨域檢查JavaScript?

DOMAIN1(這是在域2中的鏈接代碼):

function myVersion1(){window.domain2_version="1.0";} 

DOMAIN2:

<script src="http://yourjavascript.com/19653021128/version-new.js"></script> 
<script> 
    function myVersion2() { 
    window.domain1_version = "1.0"; 
    } 
    if (myVersion1() == window.domain2_version) { 
    document.write("Good"); 
    } else { 
    document.write("Bad"); 
    } 
</script> 

它說但應該說因爲DOMAIN1上的1.0與DOMAIN2上的1.0相同。

如果DOMAIN1中的數字是1.1,,那麼結果應該是Bad。

請幫我解決這個問題。

+2

你曾經調用過myversion1()嗎? – Phix

+0

我不明白你的意圖。 'myVersion1'是一個函數,而不是一個字符串,它也不返回任何東西。 – Halcyon

+0

仍然不起作用。 – user2651403

回答

2

DOMAIN1:

function myVersion1(){window.domain1_version="1.0";} 

DOMAIN2:

<script src="http://yourjavascript.com/19653021128/version-new.js"></script> 
<script> 
    function myVersion2() { 
    window.domain2_version = "1.0"; 
    } 
    myVersion1(); 
    myVersion2(); 
    if (window.domain1_version == window.domain2_version) { 
    document.write("Good"); 
    } else { 
    document.write("Bad"); 
    } 
</script> 

優化版本

DOMAIN1:

function myVersion1(){ return "1.0"; } 

DOMAIN2:

<script src="http://yourjavascript.com/19653021128/version-new.js"></script> 
<script> 
    function myVersion2() { 
    return "1.0"; 
    } 
    document.write(myVersion1() == myVersion2() ? "Good" : "Bad"); 
</script> 
+0

它仍然說不管什麼http://jsbin.com/eWEzag/1/edit?html,js,output – user2651403

+1

糟糕你忘記了將** myVersion1 **函數的內容替換爲:'window.domain1_version =「1.0 「;'' – Grigur

+0

非常感謝,我已經知道如何做到這一點,回報價值,感謝@gstroup - 我看到你做了同樣的方法,所以謝謝你! – user2651403

3

myVersion1是一個函數,所以它不等於「1.0」。你有兩個功能,都在做同樣的事情。他們都設置window.domain2_version =「1.0」。你可能希望你的函數返回一個值,否則你可以比較兩個不同的全局變量。

+0

我不知道該怎麼做。 – user2651403

+0

只是爲了澄清:你不知道如何從函數返回值? – apsillers

+0

我也試過說'if(myVersion1()== myVersion2())'但是接下來發生的一切是它總是說**好**即使它應該說**壞**(它應該說不好,如果對例如'myVersion2()'說'1.1') – user2651403