我想在弹出窗口中使用PHP函数制作textarea的弹出预览。
假设您在textarea中键入“Hello world”,然后单击“预览”,然后通过弹出的PHP函数将文本转换为“嘿嘿”(当然功能不是那么简单,那就是我之所以无法在纯粹的javascript中使用它。)
有可能这样做吗?
我知道它可以轻松地将表单发送到中间页面,但我必须将表单保留在后台...这就是我需要快速预览的原因。
我做了以下事情:
function PreviewMe() {
var newWin = window.open("", "_blank");
newWin.document.write("<html><body>"+document.getElementById('myText').value+"</body></html>");
newWin.document.close();
}
和
<textarea id="myText" ... />
<input type="submit" ... onclick="PreviewMe();">
显然它可以在不重新格式化的情况下工作,那么如何在弹出窗口中重新格式化这个结果呢?
使用XMLHttpRequest是否可能(并且可能是更好的选择)?
Thx!
答案 0 :(得分:1)
是的,您应该使用XHR
请求将数据发送到脚本,该脚本将返回您在客户端操作的数据。
答案 1 :(得分:0)
谢谢,最终它变得容易得多。
如果它可以帮助别人,这就是我所做的。 Js功能变为:
function PreviewMe() {
var xhr = null;
if (window.XMLHttpRequest || window.ActiveXObject) {
if (window.ActiveXObject) {
try {
xhr = new ActiveXObject("Msxml2.XMLHTTP");
} catch(e) {
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
} else {
xhr = new XMLHttpRequest();
}
} else {
alert("XMLHTTPRequest not supported...");
return;
}
xhr.open("POST", "page.php", true);
xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) {
document.getElementById('show').innerHTML = xhr.responseText;
}
};
xhr.send("var="+document.getElementById('myText').value+"");
return;
}
当然page.php
包含我的PHP函数,show
是打印结果的div的id。