在Javascript中调用外部HTML页面

Calling external HTML page inside Javascript

本文关键字:HTML 页面 外部 调用 Javascript      更新时间:2023-09-26

我正在尝试调用一个外部HTML页面,以便根据javascript条件在网站上显示。

代码就像这个

<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的函数。有人能帮忙吗?感谢

你指的是<iframe>元素吗?

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

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

将URL的文本插入页面并不能神奇地获取该页面的内容。这种类型的活动通常发生在SERVER上,您的服务器将从另一个页面获取内容,并将其作为页面的一部分提供。JavaScript是不适合这份工作的工具。

这种事情在服务器端使用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;
}

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