2012-03-13 101 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。