>  기사  >  백엔드 개발  >  ajax返回不能执行JS,搜了百度好多都没能解决,只能向高手请教,谢谢了!

ajax返回不能执行JS,搜了百度好多都没能解决,只能向高手请教,谢谢了!

WBOY
WBOY원래의
2016-06-23 13:28:561271검색


function Comment() {    if(http_request.readyState == 4){       if(http_request.status == 200){			var messagereturn = http_request.responseText;			if(messagereturn==null){                document.getElementById('info_lb').innerHTML="暂无信息"			}else{				var r;				r=messagereturn.split('<!--num-->');				if(r.length!=1){					if(r[0]!=''){						document.getElementById('info_num').innerHTML=r[0];					}					document.getElementById('info_lb').innerHTML=r[1];				}else{					document.getElementById('info_lb').innerHTML=messagereturn;				}			}       }else{	 	  document.getElementById('info_lb').innerHTML="加载中......";       }    }}


打开静态页后自动载入ajax返回的一个内容模板,内容模板是一个瀑布流效果,里面的JS没法执行,把JS放到静态页里也不行,怎么让ajax返回后再执行js?先谢谢了!

<script type="text/javascript" src="jquery.masonry.min.js"></script><script type="text/javascript">$(function(){	var $waterfall = $('#waterfall');		$waterfall.masonry({		columnWidth: 230	});	});</script>


回复讨论(解决方案)

执行顺序现在应该是先执行完静态页面的js  才ajax请求 所以没有效果   可以在js里加个延时什么的  我乱猜的 错了不要怪我

通过 .innerHTML 传入的 html 没有经过文档分析器,所以其中的 script 标记被视为普通 html 标记,没有显示也不会执行

通过 ajax 获取的 js 代码,要么用 eval 执行,要么以 script 节点添加到文档流中

用JQ吧,$.load()

通过 .innerHTML 传入的 html 没有经过文档分析器,所以其中的 script 标记被视为普通 html 标记,没有显示也不会执行

通过 ajax 获取的 js 代码,要么用 eval 执行,要么以 script 节点添加到文档流中




是的,就是不懂具体怎么写,能举个例子吗?谢谢!
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.