Javascript 此代码不打印。为什么?

Javascript 此代码不打印。为什么?,javascript,Javascript,这是密码 <html> <head> <script language="JavaScript"> <!-- function myFunc() { var doc = parent.frames[1].document; doc.open(); doc.write(<html><body class=

这是密码

<html>
    <head>
        <script language="JavaScript">
        <!--
            function myFunc() {
            var doc = parent.frames[1].document;
            doc.open();
            doc.write(<html><body class="dialogBody"><form><table width="100%"><tr class="colHeader" width="100%"><td align=left valign=middle>&nbsp;</td><td height=20px align=left valign=middle>Cell2</td></tr><tr class=normalRow><td width=20 height=20px align=left valign=middle><input type=radio height=12px width=12px align =center vlign=middle name='select' value=0/></td><td height=20px align=left valign=middle>Ed</td></tr><tr class=altRow><td width=20 height=20px align=left valign=middle><input type=radio height=12px width=12px align =center vlign=middle name='select' value=1/></td><td height=20px align=left valign=middle>Ed2</td></tr></table></form></body></html>);
            doc.close();
            }
            var topFrame = "<a href='#' " +"onClick='parent.myFunc()'>Click me</a>";
            var botFrame = ""; 
            myFunc(); 
        //-->
        </script>
    </head>
    <frameset rows="50%,*">
    <frame src="javascript:parent.topFrame"><input type="button" value="Click me!" onclick="myFunc()" /></frame>
    <frame src="javascript:parent.botFrame">
    </frameset>

</html>

使用Safari或firefox加载时,此代码显示为空白。你能猜出原因吗?

网页上的HTML

doc.write(<html><body class="dialogBody"><form><table width="100%"><tr class="colHeader" width="100%"><td align=left valign=middle>&nbsp;</td><td height=20px align=left valign=middle>Cell2</td></tr><tr class=normalRow><td width=20 height=20px align=left valign=middle><input type=radio height=12px width=12px align =center vlign=middle name='select' value=0/></td><td height=20px align=left valign=middle>Ed</td></tr><tr class=altRow><td width=20 height=20px align=left valign=middle><input type=radio height=12px width=12px align =center vlign=middle name='select' value=1/></td><td height=20px align=left valign=middle>Ed2</td></tr></table></form></body></html>);
doc.write(cell2eed2);
不是字符串。字符串中的引号需要转义。结果会是这样的:

doc.write("<html><body class=\"dialogBody\"><form><table width=\"100%\"><tr class=\"colHeader\" width="100%"><td align=left valign=middle>&nbsp;</td><td height=20px align=left valign=middle>Cell2</td></tr><tr class=normalRow><td width=20 height=20px align=left valign=middle><input type=radio height=12px width=12px align =center vlign=middle name='select' value=0/></td><td height=20px align=left valign=middle>Ed</td></tr><tr class=altRow><td width=20 height=20px align=left valign=middle><input type=radio height=12px width=12px align =center vlign=middle name='select' value=1/></td><td height=20px align=left valign=middle>Ed2</td></tr></table></form></body></html>");
doc.write(“cell2ed2”);

用引号将其括起来,应该可以:

 doc.write('<html><body class="dialogBody"><form><table width="100%"><tr class="colHeader" width="100%"><td align=left valign=middle>&nbsp;</td><td height=20px align=left valign=middle>Cell2</td></tr><tr class=normalRow><td width=20 height=20px align=left valign=middle><input type=radio height=12px width=12px align =center vlign=middle name=\'select\' value=0/></td><td height=20px align=left valign=middle>Ed</td></tr><tr class=altRow><td width=20 height=20px align=left valign=middle><input type=radio height=12px width=12px align =center vlign=middle name=\'select\' value=1/></td><td height=20px align=left valign=middle>Ed2</td></tr></table></form></body></html>');
doc.write('cell2ed2');

即使我在上面的html中使用了“”,我仍然没有得到任何东西,因为您使用的是多种报价类型。转义引号。是的,每次在代码中出现双引号时,请在它们前面加一个斜杠\,否则JavaScript“认为”代码字符串已完成。@David-取决于用作外部引号的引号类型。如果是
,则必须转义单引号。它甚至不是有效的英文,@Blender。language属性多年来一直被弃用,需要键入。另外,去掉script元素中的HTML注释分隔符,它们没有实际用途。