浏览 593 次
|
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
|---|---|
| 作者 | 正文 |
|
最后更新时间:2008-01-22
ajax innerHtml后内页的<scrpit>js</script>无法运行
不知道各位的解决方案是什么? google了一下发现没什么好地解决方案 1,用网上提供的那个setInnserHtml()
var setInnerHTML = function (el, htmlCode) {
var ua = navigator.userAgent.toLowerCase();
if (ua.indexOf('msie') >= 0 && ua.indexOf('opera') < 0) {
htmlCode = '<div style="display:none">for IE</div>' + htmlCode;
htmlCode=htmlCode.replace(/<script([^>]*)>/gi,"<script$1 defer=\"true\">");
el.innerHTML = htmlCode;
el.removeChild(el.firstChild);
}
else {
var el_next = el.nextSibling;
var el_parent = el.parentNode;
el_parent.removeChild(el);
el.innerHTML = htmlCode;
if (el_next) {
el_parent.insertBefore(el, el_next)
} else {
el_parent.appendChild(el);
}
}
}
但是这个方法也只能用变化一次的形势,如果你的tab 有3到4个,只能第一个的js可用用 2,直接把js写到外边,但是这种方式导致xx.js太乱 3,直接onclick="javascript: $(xx).value == "1" ? alert ....",这种方式不太优雅 我一直用第2种,不知道各位有什么好地解决方案???? 声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|
|
| 返回顶楼 | |
|
最后更新时间:2008-01-22
看Prototype的update方法,自己eval
|
|
| 返回顶楼 | |
|
最后更新时间:2008-01-22
???能否给个简单点的例子?
|
|
| 返回顶楼 | |
|
最后更新时间:2008-01-23
var myAjax = new Ajax.Updater({success:divName}, url,{method: 'post', parameters: Form.serialize(thisForm), onComplete:newfunctionname});
把你要执行的脚本放在newfunctionname中就可以了 |
|
| 返回顶楼 | |



