我遇到引号嵌套超过二层时就字符设变量解决,很好用,用转义字符好像是不行.比如你想输出方括号内的内容:["alert('abc')"]
就得这样:
 
function gogo()
{
  var s="'abc'"
  var str='"alert('+s+')"';
  alert(str);
}  不过你的问题是保留字的问题,把name换成namee,用第你的第三种写法就OK.

解决方案 »

  1.   

    function msg(parm1,parm2){
    var name=....;
    var path=....;
    document.write("<input type='button' value='附值' onclick='msg("+name+","+path+")'>");
    }
      

  2.   

    不行啊,以下是源码,请注意被注释掉的几行,哪个是正确的?
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
    <HEAD>
    <TITLE> JAVASCRIPT </TITLE>
    <META NAME="Generator" CONTENT="EditPlus">
    <META NAME="Author" CONTENT="">
    <META NAME="Keywords" CONTENT="">
    <META NAME="Description" CONTENT="">
    <SCRIPT LANGUAGE="JavaScript">
    <!--
    function NewArrary(Size)
    {
    if (size > 0)
    {
    this.length = size;
    for (var i=1; i<=size; i++)
    {
    this[i] = "0";
    }
    return this;
    }
    }
    function MakeArrary(Size)
    {
    if (Size > 0)
    {
    var num = Size + 2
    var Msg = new NewArrary(num);
    for (var i=1; i<=Size; i++)
    {
    var storyNum = "story"+ i;
    var article = "Article #";
    Msg[storyNum] = article + i;
    }
    Msg["index"] = "Return to the conver!";
    Msg["expand"] ="Remove the Button!";
    }
    return Msg[Size];
    }
    ClearId = 0;
    function Message(StoryNum,URL,Size)
    {
    window.alert(StoryNum);
    if (ClearId)
    {
    clearTimeout(ClearId);
    }
    window.alert(StoryNum);
    Msg[Size] = new MakeArrary(Size);
    window.parent.frames["HELP"].document.forms[0].helping.value = Msg[StoryNum];
    //window.parent.frames['HELP'].document.forms['FRM'].helping.value = 1;
    window.parent.status = URL;
    ClearId = setTimeout("window.parent.frames['HELP'].document.forms[0].helping.value=''",5000);
    }
    function hrefMsg(Size)
    {
    if (Size > 0)
    {
    for (var i=1; i<=Size-2; i++)
    {
    var storyNum="";
    var storyUrl="";
    var storyNum2="";
    storyNum = "story" + i;
    storyUrl = storyNum + ".html";
    storyLocation = "" + window.location;
    document.write("<CENTER>");
    //window.alert("<A HREF="+ storyUrl +" TARGET='MAIN' ONMOUSEOVER='Message("+'"'+storyNum+'"'+","+ '"'+window.location+'"' +");return true;'>");
    //window.alert("ONMOUSEOVER='Message( storyNum ,"+ window.location+");return true;'");
    //document.write("<A HREF="+ storyUrl +" TARGET='MAIN' ONMOUSEOVER='Message( "+'"'+storyNum+'"'+","+'"'+ window.location +'"'+");return true;'>");
    var str = '<A HREF="'+ storyUrl +'" TARGET="MAIN" ONMOUSEOVER="Message('+storyNum+','+storyLocation+');return true;">';
    //var str = "<A HREF='"+ storyUrl +"' TARGET='MAIN' ONMOUSEOVER='Message(storyNum,storyLocation,5)'>";
    window.alert(str);
    document.write(str);
    //document.write("<A HREF="+ storyUrl +" TARGET='MAIN' ONMOUSEOVER='Message(" + "'"+storyNum +"'"+","+this.href+");'>");
    document.write(storyNum);
    document.write("</A>");
    document.write("</CENTER>");
    document.write("<HR SIZE=2 WIDTH=25% ALIGN = CENTER>");
    }
    }
    }
    //-->
    </SCRIPT>
    </HEAD><BODY BGCOLOR = #FF0000 onload=hrefMsg(7)>
    <CENTER>
    <FONT SIZE="3" COLOR="#000000">
    <STRONG>
    CONTENTS!
    </STRONG>
    </FONT>
    </CENTER>
    </BODY>
    </HTML>
      

  3.   

    我按照 kencock(寂寞农民) 大哥的方法使用变量
    storyNum = "story" + i;
    storyNum2= "'"+"story" + i+"'";
    storyUrl = storyNum + ".html";
    storyLocation ="'"+ "" + window.location+"'";
    var str = '<A HREF="'+ storyUrl +'" TARGET="MAIN" ONMOUSEOVER="Message('+storyNum2+','+storyLocation+',7);">';
    window.alert(str);
    document.write(str);
    执行时没出错,但鼠标移动到链接上,触发ONMOUSEOVER事件,提示缺少对象?
      

  4.   

    呵呵,你好像是在生搬硬套我给你的例子,这可不行,那只是给你的一种办法,用来对付引号多的时候的。
    不行你这样,把要输出的句子先写在纸上,然后用alert输出,一点一点凑,什么时候alert的输出和你纸上写的句子完全一样了,就ok了。多试几次就会找到规律并搞定的。
      

  5.   

    我alert的输出和想要的句子是一致了,但鼠标移动到链接上,触发ONMOUSEOVER事件,提示缺少对象
      

  6.   

    不行啊,以下是源码,请注意被注释掉的几行,哪个是正确的?
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
    <HEAD>
    <TITLE> JAVASCRIPT </TITLE>
    <META NAME="Generator" CONTENT="EditPlus">
    <META NAME="Author" CONTENT="">
    <META NAME="Keywords" CONTENT="">
    <META NAME="Description" CONTENT="">
    <SCRIPT LANGUAGE="JavaScript">
    <!--
    function NewArrary(Size)
    {
    if (size > 0)
    {
    this.length = size;
    for (var i=1; i<=size; i++)
    {
    this[i] = "0";
    }
    return this;
    }
    }
    function MakeArrary(Size)
    {
    if (Size > 0)
    {
    var num = Size + 2
    var Msg = new NewArrary(num);
    for (var i=1; i<=Size; i++)
    {
    var storyNum = "story"+ i;
    var article = "Article #";
    Msg[storyNum] = article + i;
    }
    Msg["index"] = "Return to the conver!";
    Msg["expand"] ="Remove the Button!";
    }
    return Msg[Size];
    }
    ClearId = 0;
    function Message(StoryNum,URL,Size)
    {
    window.alert(StoryNum);
    if (ClearId)
    {
    clearTimeout(ClearId);
    }
    window.alert(StoryNum);
    Msg[Size] = new MakeArrary(Size);
    window.parent.frames["HELP"].document.forms[0].helping.value = Msg[StoryNum];
    //window.parent.frames['HELP'].document.forms['FRM'].helping.value = 1;
    window.parent.status = URL;
    ClearId = setTimeout("window.parent.frames['HELP'].document.forms[0].helping.value=''",5000);
    }
    function hrefMsg(Size)
    {
    if (Size > 0)
    {
    for (var i=1; i<=Size-2; i++)
    {
    var storyNum="";
    var storyUrl="";
    var storyNum2="";
    storyNum = "story" + i;
    storyUrl = storyNum + ".html";
    storyLocation = "" + window.location;
    document.write("<CENTER>");
    //window.alert("<A HREF="+ storyUrl +" TARGET='MAIN' ONMOUSEOVER='Message("+'"'+storyNum+'"'+","+ '"'+window.location+'"' +");return true;'>");
    //window.alert("ONMOUSEOVER='Message( storyNum ,"+ window.location+");return true;'");
    //document.write("<A HREF="+ storyUrl +" TARGET='MAIN' ONMOUSEOVER='Message( "+'"'+storyNum+'"'+","+'"'+ window.location +'"'+");return true;'>");
    var str = '<A HREF="'+ storyUrl +'" TARGET="MAIN" ONMOUSEOVER="Message('+storyNum+','+storyLocation+');return true;">';
    //var str = "<A HREF='"+ storyUrl +"' TARGET='MAIN' ONMOUSEOVER='Message(storyNum,storyLocation,5)'>";
    window.alert(str);
    document.write(str);
    //document.write("<A HREF="+ storyUrl +" TARGET='MAIN' ONMOUSEOVER='Message(" + "'"+storyNum +"'"+","+this.href+");'>");
    document.write(storyNum);
    document.write("</A>");
    document.write("</CENTER>");
    document.write("<HR SIZE=2 WIDTH=25% ALIGN = CENTER>");
    }
    }
    }
    //-->
    </SCRIPT>
    </HEAD><BODY BGCOLOR = #FF0000 onload=hrefMsg(7)>
    <CENTER>
    <FONT SIZE="3" COLOR="#000000">
    <STRONG>
    CONTENTS!
    </STRONG>
    </FONT>
    </CENTER>
    </BODY>
    </HTML>
      

  7.   

    我直接将document.write()中的语句copy到页面中,可以执行,但用write 就是不行,提示没有对象
      

  8.   

    呵呵,你的问题我搞了很长时间,核心问题是为什么下面的代码:
    <script language=javascript>
    function go2()
    {
      alert("Success!!!!!!!!");
    }function gogo()
    {
      str="<a id=aa href=# onMouseover=go2()>2222222222222</a>";
      document.write(str);
    }  
    </script>
    ...
    <body onload=gogo()>
    ...
    运行结果提示缺少对象.要是把onMouseover=go2()换成onMouseover=alert('Success!!!!!!!!')
    就正常,或不用document.write(),直接把它输出的内容写在文档中,也正常.
    至于为什么那个onMouseover()只认alert()而不认我们自己的函数go2(),呵呵,我也没整明白啊.像你那样把那么一大段贴出来,别人看了太费劲,所以很少人理你了.
    我已经把主要内容挑出来了,我也很想知道结果,你把我上面的内容发个新贴,多加些分,我帮你顶.