2012-03-13 102 views
-4

我想調用一個外部HTML頁面,以便在基於JavaScript條件的網站上顯示。在Javascript中調用外部HTML頁面

的代碼是這樣的

<script language="JavaScript" src="http://j.maxmind.com/app/country.js"></script> 

<script type="text/javascript"> 

var country = geoip_country_code(); 

if (country == "US") 
{ 
document.write("http://www.mywebsite.com/1.html"); 
} 

else if (country == "GB") 
{ 
document.write("<a href='#'><img src='http://www.image2.com' ><a/>"); 
} 

else 
{ 
document.write("<a href='#'><img src='http://www.image3.com' ><a/>"); 
} 
</script> 

現在,而不是顯示HTML頁面的內容,以美國的遊客來說,這只是顯示「http://www.mywebsite.com/1.html」以純文本。

我錯過了一個調用外部HTML的函數。有人可以幫忙嗎?謝謝

回答

2

你的意思是元素?

document.write('<iframe src="http://www.mywebsite.com/1.html"></iframe>'); 

由於不能調整自身以匹配其內容的大小,一定要給它一個width/height屬性或樣式(如果你知道內容的實際大小)。

1

將URL中的文字分散到頁面中並不奇妙地獲取該頁面的內容。這種類型的活動通常發生在SERVER上,您的服務器將從另一個頁面獲取內容並將其作爲您頁面的一部分提供。 JavaScript是這項工作的錯誤工具。

1

這種事情真的比服務器端更好,像php這樣的東西,但這是我在很多商業工作中使用的函數。再一次,我不願意使用這個函數來加載整個頁面,但是它在你的工具箱中非常方便。如果有人說你必須使用JQuery來做到這一點,請將它踢給我。^_^

function fetchHTML(url) 
{ 
    if('undefined' == typeof(url)) return false; 

    if(document.all){ 
    p = new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
    else 
    { 
    p = new XMLHttpRequest(); 
    } 
    rnd = Math.random().toString().substring(3); 
    if(url.indexOf('?') > -1) 
    { 
    url+='&rnd='+rnd; 
    } 
    else 
    { 
    url+='?rnd='+rnd; 
    } 

    p.open("GET",url,false); 
    p.send(null); 
    return p.responseText; 
} 
1

好了,你是給一個字符串document.write()功能,這就是爲什麼它是一個查看它應該顯示的字符串。如果你想顯示其他頁面的內容,你有兩種選擇,你可以使用或使用ajax。