我们有以下情况:
在default.aspx
我们有一个链接:
<a href="javascript:doPost()">test</a>.
和JS代码:
function doPost() {
$.post('AnHttpHandlerPage.aspx',"{some_data:...}", function(data) {
if(data.indexOf("http://")==0)
window.open(data);
else{
var win=window.open();
with(win.document) {
open();
write(data); //-> how to execute this HTML code? The code also includes references to other js files.
close();
}
}
}).error(function(msg){document.write(msg.responseText);});
}
回调可以首先是一个 url 地址或必须执行的第二个 html 代码。选项 1 适合,但在选项 2 中,将打开一个新窗口,其中代码已编写但未执行。
很清楚,因为它发生在流中,所以无法执行。那么问题来了,你怎么能解决它?也许 arefresh()
或类似的?
由于客户的要求,工作流程是不能改变的,所以必须在内部解决doPost()
。
编辑
案例 2 中的响应是这样的 HTML。这部分应该执行:
<HTML><HEAD>
<SCRIPT type=text/javascript src="http://code.jquery.com/jquery-latest.js">
</SCRIPT>
<SCRIPT type=text/javascript>
$(document).ready(function() {
do_something...
});
</SCRIPT>
</HEAD>
<BODY>
<FORM>...</FORM>
</BODY>
</HTML>
请帮忙。谢谢。