ajax加载html的问题,请先看清楚我请教的问题。

ajax加载html的问题,请先看清楚我请教的问题。,第1张

给出完整解答。期待楼主给分,经过测试,绝对可用!而且修改的部分非常少。
我的思路是,在 title 里面传递url地址,然后当调用把 title 转移给 popup的innerHMTL时,产生ajax请求,请求完成后,修改事件源对象的ajaxContent属性,并用这个属性来保存请求的值,以避免鼠标移动重复请求。
请仔细对比我修改的代码。
顺便提一句:ajax不支持跨域请求,如果是请求自己域内页面,是没有问题的,如果想获得baiducom首页内容是不可能的,这个时候就只能用iframe来实现了!如果楼主是要跨域请求,那么还是换成iframe我也提供里一个Iframe函数,只要替换一下调用就可用了。
附上全部代码:
给分!
<script type="text/javascript">
function MQ_QPopup()
{
thispFontFamily='verdana';
thispFontSize='12px';
thispFontColor='#030303';
thispBgColor='#f8f8f8';
thispBorder='1px #000000 solid';
var pOpacityIE='80';
var pOpacityFF=08;
thisinit=function()
{ var style="position:absolute;z-index:1000;visibility:hidden;padding:3px;word-break:keep-all;";
style+="font-family:'"+thispFontFamily+"';";
style+="font-size:"+thispFontSize+";";
style+="color:"+thispFontColor+";";
style+="background-color:"+thispBgColor+";";
style+="border:"+thispBorder+";";
var html="<div id='MQ_popupLayer' style=\""+style+"\"></div>";
documentwrite(html);
}
thisdoit=function(evt)
{ evt=(evt)(evt):(windowevent)(windowevent):"";
var o=(evttarget)(evttarget):(evtsrcElement);
var mouseX=(evtx)(evtx):(evtpageX-documentbodyscrollLeft);
var mouseY=(evty)(evty):(evtpageY-documentbodyscrollTop);
if(otitle!='' && otitle!=null)
{ opopupText=otitle;
otitle='';
}
else if(oalt!='' && oalt!=null)
{ opopupText=oalt;
oalt='';
}
var divPopupText=documentgetElementById('MQ_popupLayer');
divPopupTextstylefilter="alpha(opacity="+pOpacityIE+")";//ie
divPopupTextstyleopacity=pOpacityFF;//firefox
if (opopupText!='' && opopupText!=null)
{ divPopupTextstylevisibility='visible';
divPopupTextstyleleft=mouseX+15+documentbodyscrollLeft;
divPopupTextstyletop=mouseY+15+documentbodyscrollTop;
//divPopupTextinnerHTML=opopupText; 这里的内容就不用再显示了,去掉
// opopupText 里面存放请求的URL地址。 把这个地址拿出来用AJAX来请求。
// 为了避免移动鼠标产生的多次请求,把请求完成后的内容放入到 对象的一个属性里面。
// 如果不存在ajaxContent属性,证明还没有产生请求
if(!oajaxContent){
new Ajax( opopupText ,o);
// Iframe( opopupText ,o); 如果是跨域跨请求,用iframe来实现
divPopupTextinnerHTML = oajaxContent;
//否则已经产生过请求,那么直接把内容放到提示框内就可以了。
}else{ divPopupTextinnerHTML=oajaxContent; }
}
else
{ divPopupTextstyleleft=0;
divPopupTextstyletop=0;
divPopupTextstylevisibility='hidden';
}
if(divPopupTextoffsetWidth+mouseX>documentbodyclientWidth)
divPopupTextstyleleft=documentbodyclientWidth-divPopupTextoffsetWidth;
if(divPopupTextoffsetHeight+mouseY>documentbodyclientHeight)
divPopupTextstyletop=documentbodyclientHeight-divPopupTextoffsetHeight;
}
}
var MQ_popupObj=new MQ_QPopup();
MQ_popupObjinit();
documentonmousemove=MQ_popupObjdoit;
function Ajax(url,obj)
{
var request=null;
if( windowXMLHttpRequest ) { request=new XMLHttpRequest(); }
else if( windowActiveXObject ){ request=new ActiveXObject("MicrosoftXMLHttp"); }
if(request){
requestopen("GET", url , true);
requestonreadystatechange = function(){
if(requestreadyState==4 && requeststatus==200)
{
objajaxContent =requestresponseText;
}else{
objajaxContent ="Loading";
}
}
requestsend(null);
}
}
function Iframe(url,obj)
{
objajaxContent='<iframe src="'+url+'" frameborder="0" width="100%" height="100%"></iframe>';
}
</script>
<body>
<center>
<div class="mainborder">
<img src="http://imgbaiducom/img/logo-zhidaogif" width=50 border=2 title="ahtm">
<!-- 建议楼主在当前目录下写一个静态页面 ahtm 测试一下,绝对可用 -->
</div>
<span id="test"></span>
</center>
</body></html>

以上就是关于ajax加载html的问题,请先看清楚我请教的问题。全部的内容,包括:ajax加载html的问题,请先看清楚我请教的问题。、、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9874196.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存