在Javascript中调用外部HTML页面

时间:2012-03-13 13:54:59

标签: javascript html

我正在尝试根据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的函数。有人可以帮忙吗?感谢

4 个答案:

答案 0 :(得分:2)

您的意思是<iframe>元素吗?

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

由于<iframe>无法调整自身大小以匹配其内容的大小,因此请确保为其指定width / height属性或样式(如果您知道内容的实际大小)

答案 1 :(得分:1)

将URL的文本吐出到页面中并不会神奇地抓取该页面的内容。这种类型的活动通常发生在SERVER上,您的服务器将从另一个页面获取内容并将其作为您页面的一部分提供。 JavaScript是这项工作的错误工具。

答案 2 :(得分: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;
}

答案 3 :(得分:1)

好吧,你给了document.write()函数一个字符串,这就是它显示它应该显示的字符串的原因。如果您想显示其他页面的内容,您有两个选择,您可以使用<iframe>或使用ajax。