次のような状況があります。
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アドレスまたは2番目のhtmlコードにすることができます。オプション1は適合しますが、オプション2では、コードが記述されているが実行されていない新しいウィンドウが開きます。
ストリーム内で発生するため、実行できないことは明らかです。それで、質問、どうすればそれを修正できますか?たぶん、、refresh()
または同様のもの?
お客様の要件により、ワークフローを変更することはできません。そのため、内で解決する必要があります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>
助けてください。ありがとう。