我有两个包含一些 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 函数中,以便将其直接写入文档。


评论关闭
IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!