这是一个在CheckJs webmethod上加载脚本的web服务。
[WebMethod(EnableSession = true)]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string CheckJs()
{
string script = "<script> (function() { alert('script loaded'); })(); </script>";
return script;
}
Checkscript.js
这里我们调用AJAX方法来使用webservice结果
function Loadarticlecomments() {
inputdata = {};
var outputhtml = "";
var newurl = "/WebServices/CheckJsScript/WSScript.asmx/CheckJs";
var dataStrVal = "";
jQuery.ajax({
type: "POST",
url: newurl,
data: dataStrVal,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(result) {
if (result.d != null && result.d.length > 0) {
$(".commentsid").html((result.d));
}
},
error: function(result) {
console.log('JS Script- system failure');
return false;
}
});
}
脚本没有解雇。请问有人解决这个问题吗?
答案 0 :(得分:1)
当您在页面中插入脚本时,脚本没有触发,因为没有人执行它,只是站在那里。
您可以使用eval()
来执行表示为字符串的javascrip代码。不要忘记从服务中删除 <script>
标记。
// code
success: function(result) {
if (result.d != null && result.d.length > 0) {
eval(result.d); // execute script returned by service
}
},
// other code
注意:在使用之前,请考虑阅读此内容Why is using the JavaScript eval function a bad idea?
var data = "(function() { alert('script loaded'); })()"
eval(data);