我有两个包含一些 html 代码的变量,另一个包含 html 表单代码的变量。我试图在一秒内扩展一个字符串,将其作为参数传递给函数,但这会导致一些错误。
我的制作弹出功能非常简单:
function popup(htmlcode){
child1 = window.open ("about:blank");
child1.document.write(htmlcode);
child1.document.close();
}
使用上述函数的代码
<?php
$blah = "<h1>Well</h1>"; $test = "<h2>Done</h2>";
echo '<script type="text/javascript" src="fetchlayers.js"></script>';
$formcode = "<form action=\"process.php\" method=\"post\" enctype=\"multipart/form-data \">
<label for=\"file\">Filename:</label>
<input type=\"file\" name=\"file\" id=\"file\"/>
<br />
<input type=\"submit\" name=\"submit\" value=\"Submit\" onclick=\"setTimeout(function() { sendInfo(\"".$blah."\", \"".$test."\"); } ),1250);\" />
</form>";
echo "<h1>hello</h1>
<div id='form'>
<a href='#' onclick=\"popup('" . htmlentities($formcode) . "'); return false;\">
click here</a>
</div>";
这会产生足够好的 html 代码,但是 firebug 给我一个错误,指出我有一个未终止的横向字符串。我找不到这是哪里。我知道我这样做的方式并不理想,但我正在学习,目前不知道更好的方法。感谢您的任何意见
编辑:好的,所以问题是我有未终止的字符串文字,即\n 字符。我将字符串变成一行,并且它正确地调用了该函数。
是否无法将一个 echo 语句分成多行?
现在问题出在弹出窗口中生成的 html 上。有些代码实际上是打印到屏幕上的,这是为什么?
<form action="process.php" method="post" enctype="multipart/form-data "><label for="file">Filename:</label><input name="file" id="file" type="file"> <br><input name="submit" value="Submit" onclick="setTimeout(function() { sendInfo(" type="submit"><h1>Well</h1>", "<h2>Done</h2>"); },1250);" /></form>
看图here :
请您参考如下方法:
更好的方法是打开一个已经包含表单代码的 HTML 或 PHP 页面,而不是打开 about:blank
并动态传递它。
您没有理由必须将 HTML 传递到 Javascript 函数中,以便将其直接写入文档。