论坛首页 AJAX版 AJAX

ajax innerHtml后内页的<scrpit>js</script>无法运行

浏览 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种,不知道各位有什么好地解决方案????
   
最后更新时间:2008-01-22
看Prototype的update方法,自己eval
   
0 请登录后投票
最后更新时间:2008-01-22
???能否给个简单点的例子?
   
0 请登录后投票
最后更新时间:2008-01-23
var myAjax = new Ajax.Updater({success:divName}, url,{method: 'post', parameters: Form.serialize(thisForm), onComplete:newfunctionname});

把你要执行的脚本放在newfunctionname中就可以了
   
0 请登录后投票
论坛首页 AJAX版 AJAX

跳转论坛:
JavaEye推荐