本帖最后由 jianshao810 于 2010-09-07 11:57:23 编辑

解决方案 »

  1.   

    用div隐藏显示 调用函数方法
      

  2.   

    不是隐藏显示问题。。
    而是如何加载的问题。
    我想他点击的时候再加载
    我原来是这样写的$("#87span").html('<script>document.write("<scr" + "ipt language=\"javascript\" src=\"http://www.53kf.com/kf.php?arg=aqioo&style=1&keyword=" + escape(document.referrer) + "\"></scr" + "ipt>");</script><a target=blank href=tencent://message/?uin=996298362&Site=阿启网&Menu=yes>< img border="0" SRC=http://wpa.qq.com/pa?p=1:996298362:7 alt="点击这里给我发消息"></a>');但是出错
      

  3.   

    楼主要不先显示图片,当点击图片的时候出发函数然后再document.write()呢?不知道是不是这个意思
      

  4.   

    谢谢楼上的。
    我想要的功能是这样
    <span>
    <script>document.write("<scr" + "ipt language=\"javascript\" src=\"http://www.53kf.com/kf.php?arg=aqioo&style=1&keyword=" + escape(document.referrer) + "\"></scr" + "ipt>");</script><a target=blank href=tencent://message/?uin=996298362&Site=阿启网&Menu=yes>< img border="0" SRC=http://wpa.qq.com/pa?p=1:996298362:7 alt="点击这里给我发消息"></a>
    </span>
    这个直接放到网页上是可以显示的,但是加载非常慢,而且用户不一定需要看到这两个。
    所以我现在想他点击一个按钮(该按钮是显示这两个东西的)的时候
    再进行加载。
    不知道说明白没有。
    关键是
    $("#kefuSpan").html('<script type="text/javascript" src="http://www.53kf.com/kf.php?arg=aqioo&style=1&keyword=' + escape(document.referrer) + '"></script>');
    这个不知道如何来写
      

  5.   


    可以在点击选项卡的时候加载内容,用ajax请求。jquery的ajax可以获得script脚本
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <title>jquery tab 选项卡</title>

        <meta http-equiv="author" content="hoojo">
        <meta http-equiv="description" content="this is my page">
        <meta http-equiv="content-type" content="text/html; charset=UTF-8">
        <script type="text/javascript" src="jquery.js"></script>
    <style type="text/css">
    .tab {
    background-color: mintcream;
    width: 200px;
    -width: 205px;
    height: 200px;
    margin-left: 200px; 
    }

    .header {
    height: 20px;
    width: 100%;
    }

    .content {
    border: 1px solid #CCCCFF;
    border-top: none;
    height: 180px;
    }

    .liStyle {
    cursor: pointer;
    height: 20px;
    width: 66px;
    -width: 61px;
    float: left;
    background-color: white;
    }

    .show {
    background-color: mintcream;
    border: 1px solid #CCCCFF;
    border-bottom: none;
    }

    .hide {
    background-color: white;
    border-bottom: 1px solid #CCCCFF;
    }

    .ulHide {
    display: none;
    }

    .ulShow {
    display: block;
    }

    ul {
    list-style: none outside none;
    }

    * {
    margin: 0;
    padding: 0;
    }
    </style>

    <script type="text/javascript">
    $(function () {
    $(".tab > ul.header > li").click(function () {
    $(this).parent().find("li.show").addClass("hide").removeClass("show");
    $(this).addClass("show").removeClass("hide");
    var parentsEl = $(this).parents(".tab");
    parentsEl.find("div > ul.ulShow").addClass("ulHide").removeClass("ulShow");
    /*页面静态内容*/
    var ary = parentsEl.find("ul.header > li");
    parentsEl.find("div > ul:eq(" + $.inArray(this, ary) + ")").addClass("ulShow").removeClass("ulHide");
    /*用ajax动态加载内容
    parentsEl.find("div > ul:eq(" + $.inArray(this, ary) + ")").addClass(function () {
    var el = this;
    $.post("TreeDataServlet", {param: "params"}, function (data) {
    $(el).html(data);
    });
    return "ulShow";
    }).removeClass("ulHide");*/
    })
    });
    </script>
      </head>
      
      <body bgcolor="white">
       <div class="tab">
         <ul class="header">
         <li class="liStyle show">Java</li>
         <li class="liStyle hide">Spring</li>
         <li class="liStyle hide">Hibernate</li>
         </ul>
         <div class="content">
         <ul class="ulShow">
         Java
         <li>java javaSE</li>
         <li>java javaME</li>
         <li>java javaEE</li>
         </ul>
         <ul class="ulHide">
         Spring
         <li>java springMVC</li>
         <li>java spring aop</li>
         <li>java spring Ioc DI</li>
         </ul>
         <ul class="ulHide">
         Hibernate
         <li>java Hibernate Configuration Transaction</li>
         <li>java Hibernate Query Criteria</li>
         <li>java Hibernate Session SessionFactory</li>
         </ul>
         </div>
        </div>
        <hr/>
        <div class="tab">
         <ul class="header">
         <li class="liStyle show">Java</li>
         <li class="liStyle hide">Spring</li>
         <li class="liStyle hide">Hibernate</li>
         </ul>
         <div class="content">
         <ul class="ulShow">
         Java....
         <li>java javaSE</li>
         <li>java javaME</li>
         <li>java javaEE</li>
         </ul>
         <ul class="ulHide">
         Spring....
         <li>java springMVC</li>
         <li>java spring aop</li>
         <li>java spring Ioc DI</li>
         </ul>
         <ul class="ulHide">
         Hibernate....
         <li>java Hibernate Configuration Transaction</li>
         <li>java Hibernate Query Criteria</li>
         <li>java Hibernate Session SessionFactory</li>
         </ul>
         </div>
        </div>
      </body>
    </html>
    本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/IBM_hoojo/archive/2010/07/28/5772017.aspx
      

  6.   

    谢谢,其实我早用过了     if (id == "infoH3") {
                    //$("#kefuSpan").html('<script type="text/javascript" src="http://www.53kf.com/kf.php?arg=aqioo&style=1&keyword=' + escape(document.referrer) + '"></script>');
                   // $("#kefuSpan").html('<a target=blank href=tencent://message/?uin=996298362&Site=阿启网&Menu=yes><img border="0" SRC="http://wpa.qq.com/pa?p=1:996298362:7" alt="点击这里给我发消息"/></a>');                $.getScript('http://www.53kf.com/kf.php?arg=aqioo&style=1&keyword=' + escape(document.referrer) + '');
                }我这样写的,他就给我新开一个窗口
      

  7.   


    $.post("your.js", {param: "params"}, function (data) {
          $(el).html(data);//this data is script
    }, "script");
      

  8.   

    楼主啊,你在网页上用个图片(随便了),然后给他加个onclick时间,当点击的时候惊醒script的document.write(),我想能够解决楼主的问题
      

  9.   

    就是如下:
    <span>
    <b onclick="show()" style="cursor:pointer;color:blue;">WOLAIYE</b>
    <script>
    function show(){
    document.write("<scr" + "ipt language=\"javascript\" src=\"http://www.53kf.com/kf.php?arg=aqioo&style=1&keyword=" + escape(document.referrer) + "\"></scr" + "ipt>");
    }
    </script>
    <a target=blank href=tencent://message/?uin=996298362&Site=阿启网&Menu=yes>
    <img border="0" SRC=http://wpa.qq.com/pa?p=1:996298362:7 alt="点击这里给我发消息">
    </a>
    </span>
      

  10.   

    $.get('http://www.53kf.com/kf.php?arg=aqioo&style=1', null, null, "script");
    他会转到新页面(页面的url跟原来的意义),这个页面就写着网上客服。
    请问如何进行修改?
      

  11.   


    o,那就是你请求的script里面可能有移动wondow.location 的跳转代码
    你在回调函数中得到script,看看回调中的data,将其替换掉看看
      

  12.   

    谢谢kyzy_yy_pm
    但是他打开一个新页面,不知道是不是与document.write有关系。。他好像将原来的html全部去掉啦。
      

  13.   

    document.write是重写本页面,也就是将要写的东西代替本网页的所有东西(如同替换)
      

  14.   


    这当然算动态加载啊。你用的是jQuery么?用load方法就好。如果想自己实现,参考jQuery里面的globalEval方法。
      

  15.   

    谢谢支持
                    $("#kefuSpan").load('http://www.53kf.com/kf.php?arg=aqioo&style=1&keyword=' + escape(document.referrer) + '', null, function(js) { eval(js); });
    始终是没成功的
      

  16.   

    他返回的脚本里包括document.write("<scr"+"ipt src='http://www3.53kf.com/kf_ivt.php?arg=aqioo&style=1&isonline=1&kfonline=1&lang=zh-cn&resize=yes&charset=GBK&kflist=off&kf=&zdkf_type=1&referer="+hz6d_from_page+"&lytype=0&tpl_name=crystal_blue&tpl_width=703&tpl_height=473' type='text/javascript'></scr"+"ipt>");hz6d_con_img=hz6d_html_replace("<img src='http://www3.53kf.com/img/kflogo/line1.gif' border='0' onclick='setIsinvited();window.open(\"http://www3.53kf.com/webCompany.php?arg=aqioo&style=1&kflist=off&kf=&zdkf_type=1&language=zh-cn&charset=GBK&lytype=0&referer={hz6d_keyword}&tpl=crystal_blue\",\"_blank\",\"height=473,width=703,top=200,left=200,status=yes,toolbar=no,menubar=no,resizable=yes,scrollbars=no,location=no,titlebar=no\")' style='cursor:pointer'/>");document.write(hz6d_con_img);    document.write("<scr"+"ipt src='http://www3.53kf.com/stat.php?com_id=607557&referer="+hz6d_from_page+"' type='text/javascript'></scr"+"ipt>");这表明了不能异步加载吗?
      

  17.   

    看这个,替换后,再eval 运行js
      

  18.   

    加载js,可用dom方式。给你个例子。
    var obj = document.createElement("script");
    obj.type="text/javascript";
    obj.src="jquery.layout.js";
    document.body.insertBefore(obj);
    图片也用此方法
    var img_obj = document.createElement("img");
    img_obj.src="xxx.png";
      

  19.   

     var kf_success = 1; var kftype = 2;                                        // 获取cookie值 
                                            function hz6d_getCookie(name) {
                                                var offset = document.cookie.indexOf(name + "=");
                                                if (offset != -1) {
                                                    offset += name.length + 1;
                                                    var end = document.cookie.indexOf(";", offset);
                                                    if (end == -1) {
                                                        end = document.cookie.length;
                                                    }
                                                    return document.cookie.substring(offset, end);
                                                }
                                                else {
                                                    return "";
                                                }
                                            }
                                            var hz6d_from_page = hz6d_getCookie("53kf_");
                                            if (hz6d_from_page == "") {
                                                hz6d_from_page = document.referrer;
                                                document.cookie = "53kf_=" + hz6d_from_page;
                                            }
                                            hz6d_from_page = "&keyword=" + escape(hz6d_from_page);                                        function hz6d_html_replace(html) {
                                                var pattern = /{hz6d_keyword}/gim;
                                                var str = hz6d_from_page + "&tfrom=1";
                                                var hz6d_html = html.replace(pattern, str);
                                                return hz6d_html;
                                            }
                                            // has defined <!DOCTYPE... > 
                                            function hasdoctype() {
                                                var ret = false;
                                                try {
                                                    if (document.compatMode == "BackCompat")
                                                        ret = false;
                                                    else if (document.compatMode == "CSS1Compat")
                                                        ret = true;
                                                    else
                                                        ret = true;
                                                }
                                                catch (e) { ret = false }
                                                return ret;
                                            }                                        // ie8 =  IE8_Partner_Build [2008-12-11] 
                                            function detectBrowser() {
                                                var ret = "ie6"; // default 
                                                var user_agent = navigator.userAgent;
                                                if (user_agent.indexOf("compatible") > -1) {
                                                    if (user_agent.indexOf("MSIE 6.0") > -1)
                                                        ret = "ie6"
                                                    else if (user_agent.indexOf("MSIE 7.0") > -1)
                                                        ret = "ie7";
                                                    else if (user_agent.indexOf("MSIE 8.0") > -1)
                                                        ret = "ie8";
                                                    if (user_agent.indexOf("360") > -1) {
                                                        ret = "360";
                                                    }
                                                }
                                                else if (user_agent.indexOf("Gecko") > -1) {
                                                    ret = "firefox";
                                                }                                            if ("" == "TheWorld") {
                                                    ret = "TheWorld";
                                                }                                            return ret;
                                            }                                        // 间距小于步进,则移动间距的距离 
                                            function smoothMove(start, end) {
                                                var step = Math.abs(end - start);
                                                var forword = end - start;                                            if (step > 2) {
                                                    step = Math.ceil(step * 0.2) * (forword / Math.abs(forword));
                                                }
                                                else {
                                                    step = step * (forword / Math.abs(forword));
                                                }                                            posi = start + step;
                                                if (step > 0) {
                                                    if (posi > end)
                                                        posi = end;
                                                }
                                                else {
                                                    if (posi < end)
                                                        posi = end;
                                                }
                                                return posi;
                                            }
                                            var hasdoctype = hasdoctype();
                                            var browser = detectBrowser();                                        // 点击图标设置变量 
                                            function setIsinvited() {
                                                try {
                                                    onliner_zdfq = 2;
                                                    if (acc_autotype == 3) {
                                                        document.cookie = "onliner_zdfq607557=" + onliner_zdfq;
                                                    }
                                                } catch (e) { }
                                            }
                                            var onliner_zdfq = hz6d_getCookie("onliner_zdfq607557"); //onliner_zdfq: 0.初始值 2.点击接受 3.点击拒绝 
                                            if (onliner_zdfq == "") {
                                                onliner_zdfq = 0;
                                                document.cookie = "onliner_zdfq607557=" + onliner_zdfq;
                                            } var hz6d_kf_type = 2;
                                            var hz6d_pos_model = 2;
                                            var hz6d_hidden = 0;
                                            var hz6d_close_icon = 0;
                                            document.write("<scr" + "ipt src='http://www3.53kf.com/kf_ivt.php?arg=aqioo&style=1&isonline=1&kfonline=1&lang=zh-cn&resize=yes&charset=GBK&kflist=off&kf=&zdkf_type=1&referer=" + hz6d_from_page + "&lytype=0&tpl_name=crystal_blue&tpl_width=703&tpl_height=473' type='text/javascript'></scr" + "ipt>"); hz6d_con_img = hz6d_html_replace("<img src='http://www3.53kf.com/img/kflogo/line1.gif' border='0' onclick='setIsinvited();window.open(\"http://www3.53kf.com/webCompany.php?arg=aqioo&style=1&kflist=off&kf=&zdkf_type=1&language=zh-cn&charset=GBK&lytype=0&referer={hz6d_keyword}&tpl=crystal_blue\",\"_blank\",\"height=473,width=703,top=200,left=200,status=yes,toolbar=no,menubar=no,resizable=yes,scrollbars=no,location=no,titlebar=no\")' style='cursor:pointer'/>"); document.write(hz6d_con_img); document.write("<scr" + "ipt src='http://www3.53kf.com/stat.php?com_id=607557&referer=" + hz6d_from_page + "' type='text/javascript'></scr" + "ipt>");他函数是这样的。把他贴到vs里是很清晰的,执行就靠最后的document.write();
    但是他那里也没打开窗口啊。。
      

  20.   

    是的,如果有document.write不能用异步 了,这个方法会刷新当前文档
    如果没有的话可以先用
    $.getScript("scriptsrc",function(){
    obj.html('<img src...../>');
    });
      

  21.   

    sky 好像说中要害啦。
    我基本可以放弃了。。哭。。花我两个小时啊。。
      

  22.   

    dom、超链什么的都用了,还是不行
      

  23.   

    呵呵。现在不是异步加载js问题,js是拿过来啦。但是不知道如何配合来用。他本来就包括了document.write()函数啊
      

  24.   

    kyzy_yy_pm
    你也尝试了?就是打开新窗口吗?
      

  25.   


    var loadJs=function(f)
    {
    var js=document.createElement('script');
    js.language='javascript';
    js.type='text/javascript';
    js.src=f;
    document.getElementsByTagName('head')[0].appendChild(js);
    };
    loadJs(http://www.53kf.com/kf.php?arg=aqioo&style=1&keyword=" + escape(document.referrer)); //调用的时候
      

  26.   

    // 点击图标设置变量 
                                            function setIsinvited() {
                                                try {
                                                    onliner_zdfq = 2;
                                                    if (acc_autotype == 3) {
                                                        document.cookie = "onliner_zdfq607557=" + onliner_zdfq;
                                                    }
                                                } catch (e) { }
                                            }
                                            var onliner_zdfq = hz6d_getCookie("onliner_zdfq607557"); //onliner_zdfq: 0.初始值 2.点击接受 3.点击拒绝 
                                            if (onliner_zdfq == "") {
                                                onliner_zdfq = 0;
                                                document.cookie = "onliner_zdfq607557=" + onliner_zdfq;
                                            } var hz6d_kf_type = 2;
                                            var hz6d_pos_model = 2;
                                            var hz6d_hidden = 0;
                                            var hz6d_close_icon = 0;
                                            document.write("<scr" + "ipt src='http://www3.53kf.com/kf_ivt.php?arg=aqioo&style=1&isonline=1&kfonline=1&lang=zh-cn&resize=yes&charset=GBK&kflist=off&kf=&zdkf_type=1&referer=" + hz6d_from_page + "&lytype=0&tpl_name=crystal_blue&tpl_width=703&tpl_height=473' type='text/javascript'></scr" + "ipt>"); hz6d_con_img = hz6d_html_replace("<img src='http://www3.53kf.com/img/kflogo/line1.gif' border='0' onclick='setIsinvited();window.open(\"http://www3.53kf.com/webCompany.php?arg=aqioo&style=1&kflist=off&kf=&zdkf_type=1&language=zh-cn&charset=GBK&lytype=0&referer={hz6d_keyword}&tpl=crystal_blue\",\"_blank\",\"height=473,width=703,top=200,left=200,status=yes,toolbar=no,menubar=no,resizable=yes,scrollbars=no,location=no,titlebar=no\")' style='cursor:pointer'/>"); document.write(hz6d_con_img); document.write("<scr" + "ipt src='http://www3.53kf.com/stat.php?com_id=607557&referer=" + hz6d_from_page + "' type='text/javascript'></scr" + "ipt>");===============
    把document.write部分改成dom createElement方式。
      

  27.   

    var loadJs=function(f)
    {
    var js=document.createElement('script');
    js.language='javascript';
    js.type='text/javascript';
    js.src=f;
    document.getElementsByTagName('head')[0].appendChild(js);
    };
    loadJs("http://www.53kf.com/kf.php?arg=aqioo&style=1&keyword=" + escape(document.referrer)); //调用的时候
      

  28.   

    另外
    escape(document.referrer)
    最好改成
    escape(document.referrer).replace(/\+/g,'%2b')
    因为escape会把空格符解析为'+'
      

  29.   

    是咯。
    谢谢sbwwkmyd
    你的方法我也尝试过。跟jq的是一样。也是打开新窗口的
      

  30.   

    这个代码不会打开新窗口啊。如果会,应该是http://www.53kf.com/kf.php这个脚本中有打开新窗口的代码。
      

  31.   

    恩。你说对啦。。
    http://www.53kf.com/kf.php
    这个脚本会返回document.write();这个会清除html的。
    我想问下这样行不行
    我新建一个html,内容如下
    <span>
    <script>document.write("<scr" + "ipt language=\"javascript\" src=\"http://www.53kf.com/kf.php?arg=aqioo&style=1&keyword=" + escape(document.referrer) + "\"></scr" + "ipt>");</script><a target=blank href=tencent://message/?uin=996298362&Site=阿启网&Menu=yes>< img border="0" SRC=http://wpa.qq.com/pa?p=1:996298362:7 alt="点击这里给我发消息"></a>
    </span>
    然后我点击按钮再装入这个html可行吗?
      

  32.   

    如果是这样,你可以先入为主,先把document.write给改掉,比如你知道它会写到一个id为x的容器中:
    document.write=function()
    {
    var v=[];
    for(var i=0;i<arguments.length;i++) v.push(arguments[i]);
    document.getElementById('x').innerHTML=v.join('');
    };当然,如果write的内容里面包含<script>,你要自己解析出来然后再动态加载它。
      

  33.   

    这样是不行的,简单一点可以把它换成一个iframe应该可以解决,除非它的脚本有判断这个是不是top之类的。
      

  34.   

    呵呵。。我用<iframe>
    如果要自己重新document.write()那就太麻烦啦
      

  35.   

    异步处理,使用ajax技术,我觉得可行!!!
      

  36.   

    ajax跨域没权限吧,
    考虑到服务端写个代理,读取到文件 ,将最后一行document.write换掉,自己用js实现