Javascript 如何添加<;脚本></脚本>;在使用jQueryAjax时,是否与从另一个页面返回的其他数据一起使用?
我正在使用ajax加载reCaptcha。从其他页面返回的其中一行是下面的一行,当我使用Javascript 如何添加<;脚本></脚本>;在使用jQueryAjax时,是否与从另一个页面返回的其他数据一起使用?,javascript,jquery,ajax,Javascript,Jquery,Ajax,我正在使用ajax加载reCaptcha。从其他页面返回的其中一行是下面的一行,当我使用$(.cap.html(回调)时,该行不会加载到我的div 这是一条线 这是jQuery不允许的吗?还是我做错了什么?我怎样才能解决这个问题?如何将jquery从另一个页面返回到我的 我测试的内容很简单: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html;
$(.cap.html(回调)时,该行不会加载到我的div
代码>
这是一条线
这是jQuery不允许的吗?还是我做错了什么?我怎样才能解决这个问题?如何将jquery从另一个页面返回到我的
我测试的内容很简单:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>No Tile</title>
<script type="text/javascript" src="http://localhost/site/scripts/jQuery.js"></script>
<style type="text/css">
.user {
cursor: pointer;
}
</style>
<script type="text/javascript">
$(document).ready(function() {
//$(".user").live("click",function() {
$(".user").click(function() {
data = "id=Hello"
$.ajax({
type:"GET",
url:"demo.php",
data:data,
dataType:"html",
beforeSend:function(html){
},
success: function(callBack){
$(".cap").html(callBack);
console.log(callBack);
},
error: function(page_data){
},
});
});
});
</script>
</head>
<body>
<div id="container">
<div class="cap">Hello</div>
<span class="user">Add User</span>
</div>
</body>
</html>
即使是字符串格式,也无法返回“脚本”标记。这是因为javascript的工作方式。但是,您可以让demo.php脚本返回json。你应该自己查一下,但我不相信有其他方法可以轻松做到这一点。
(更糟糕的做法是,您可以返回一个字符串并解析其中的值,但是…)。无论如何,如果您假设您以以下格式返回一个json对象,那么您只需将其余的复制粘贴到success函数中,并将对象名称更改为“callback”
var json = {
type: "text/javascript",
scriptSrc: "http://www.google.com/recaptcha/api/challenge?k=6LcXq-oSAAAAAOgwSIew_xq6xkv1QUxrZbRcMz6n",
id: "theFrame",
iframeSrc: 'http://www.google.com/recaptcha/api/noscript?k=6LcXq-oSAAAAAOgwSIew_xq6xkv1QUxrZbRcMz6n'
};
var script = document.createElement('script');
script.type = json.type;
script.src = json.scriptSrc;
$('<iframe>', {
src: json.iframeSrc,
id: json.id,
frameborder: 0,
height: 300,
width: 500
}).appendTo('.cap');
var json={
键入:“text/javascript”,
scriptSrc:“http://www.google.com/recaptcha/api/challenge?k=6LcXq-oSAAAAAOgwSIew_xq6xkv1qrzbrcmz6n“,
id:“帧”,
iframeSrc:'http://www.google.com/recaptcha/api/noscript?k=6LcXq-oSAAAAAOgwSIew_xq6xkv1qrzbrcmz6n'
};
var script=document.createElement('script');
script.type=json.type;
script.src=json.scriptSrc;
$('', {
src:json.iframeSrc,
id:json.id,
帧边框:0,
身高:300,
宽度:500
}).附于(“.cap”);
jsfdle:即使是字符串格式,也不可能返回“script”标记。这是因为javascript的工作方式。但是,您可以让demo.php脚本返回json。你应该自己查一下,但我不相信有其他方法可以轻松做到这一点。
(更糟糕的做法是,您可以返回一个字符串并解析其中的值,但是…)。无论如何,如果您假设您以以下格式返回一个json对象,那么您只需将其余的复制粘贴到success函数中,并将对象名称更改为“callback”
var json = {
type: "text/javascript",
scriptSrc: "http://www.google.com/recaptcha/api/challenge?k=6LcXq-oSAAAAAOgwSIew_xq6xkv1QUxrZbRcMz6n",
id: "theFrame",
iframeSrc: 'http://www.google.com/recaptcha/api/noscript?k=6LcXq-oSAAAAAOgwSIew_xq6xkv1QUxrZbRcMz6n'
};
var script = document.createElement('script');
script.type = json.type;
script.src = json.scriptSrc;
$('<iframe>', {
src: json.iframeSrc,
id: json.id,
frameborder: 0,
height: 300,
width: 500
}).appendTo('.cap');
var json={
键入:“text/javascript”,
scriptSrc:“http://www.google.com/recaptcha/api/challenge?k=6LcXq-oSAAAAAOgwSIew_xq6xkv1qrzbrcmz6n“,
id:“帧”,
iframeSrc:'http://www.google.com/recaptcha/api/noscript?k=6LcXq-oSAAAAAOgwSIew_xq6xkv1qrzbrcmz6n'
};
var script=document.createElement('script');
script.type=json.type;
script.src=json.scriptSrc;
$('', {
src:json.iframeSrc,
id:json.id,
帧边框:0,
身高:300,
宽度:500
}).附于(“.cap”);
jsiddle:事实上,可以呈现javascript标记。e、 html5 boilertemplate使用它来查看是从本地还是从CDN加载jQuery
<script>window.jQuery || document.write('<script src="js/vendor/jquery-1.10.2.min.js"><\/script>')</script>
window.jQuery | | document.write(“”)
如您所见,如果插入脚本标记,则需要转义结束脚本标记
另一方面,你不能这样做
<noscript>
<iframe src="http://www.google.com/recaptcha/api/noscript?k=6LcXq-oSAAAAAOgwSIew_xq6xkv1QUxrZbRcMz6n" height="300" width="500" frameborder="0"></iframe><br/>
<textarea name="recaptcha_challenge_field" rows="3" cols="40"></textarea>
<input type="hidden" name="recaptcha_response_field" value="manual_challenge"/>
</noscript>
仅仅因为您不拥有iframe源,您的iframe将不会被渲染
但你可以这样做:
callBack = callBack.replace('</script','<\/script')
.replace('<noscript>','')
.replace('</noscript>','');
$('body').append(callback);
callBack=callBack.replace(“它实际上可以呈现javascript标记。例如,html5 boilertemplate使用它来查看是应该从本地还是从CDN加载jQuery
<script>window.jQuery || document.write('<script src="js/vendor/jquery-1.10.2.min.js"><\/script>')</script>
window.jQuery | | document.write(“”)
如您所见,如果插入脚本标记,则需要转义结束脚本标记
另一方面,你不能这样做
<noscript>
<iframe src="http://www.google.com/recaptcha/api/noscript?k=6LcXq-oSAAAAAOgwSIew_xq6xkv1QUxrZbRcMz6n" height="300" width="500" frameborder="0"></iframe><br/>
<textarea name="recaptcha_challenge_field" rows="3" cols="40"></textarea>
<input type="hidden" name="recaptcha_response_field" value="manual_challenge"/>
</noscript>
仅仅因为您不拥有iframe源,您的iframe将不会被渲染
但你可以这样做:
callBack = callBack.replace('</script','<\/script')
.replace('<noscript>','')
.replace('</noscript>','');
$('body').append(callback);
callBack=callBack.replace('$(“head”).append(回调);@Riturajratan,即使我上面提到的那行没有附加。这是不可能的。但是,有一个可能的解决方案,请查看前一篇文章:@Tsasken,你知道在使用此页面上的解决方案后如何添加a和其他内容吗?整个内容都在我的问题中的编辑中。$(“head”)。附加(回调);@Riturajratan即使我上面提到的行没有附加。这不可能是你正在尝试的方式。有一个可能的解决方案,但是,请查看之前的帖子:@Tsasken你知道如何在使用此页面上的解决方案后添加a和其他内容吗?我的问题是,整个事情都在编辑中。