返回带load()的可执行Javascript和html内容

返回带load()的可执行Javascript和html内容,javascript,jquery,html,Javascript,Jquery,Html,据我所知,eval()很可能是最好的选择。但是在我的inserttest.php页面中,它是html和javascript的混合体。当页面加载完成并且内容被放入#light Div时,只有javascript不工作 所以我的问题是…下面的方法是最好的吗。我将如何编辑它以允许所有内容按原样返回 <script type="text/javascript"> $(document).ready(function(){ $("form#myform").submit(function(ev

据我所知,eval()很可能是最好的选择。但是在我的inserttest.php页面中,它是html和javascript的混合体。当页面加载完成并且内容被放入#light Div时,只有javascript不工作

所以我的问题是…下面的方法是最好的吗。我将如何编辑它以允许所有内容按原样返回

<script type="text/javascript">
$(document).ready(function(){
$("form#myform").submit(function(event){
$('#light').load('inserttest.php');
});
});
</script>
我相信这只会返回脚本,而不会返回html/

UPDATE-insertest.php的输出

<form id="myformshareid"  method="POST"  class="form_statusinput">
<input type="hidden"  name="toid" id="toid" value="<? echo $user1_id ?>">
<input type="hidden"  name="streamitem_con" id="streamitem_con" value='<? echo $streamitem_data['streamitem_content'] ?>'/>
<input type="hidden"  name="streamitem_idsharetype" id="streamitem_idsharetype" value="<? echo $noterypes['streamitem_type_id'] ?>">
<input type="hidden"  name="streamitem_id" id="streamitem_id" value="<? echo $streamitem_data['streamitem_id'] ?>">
<div cols="40" rows="5" name="newmsg" id="newmsg" data-ph="Say something <? echo $data['first']; ?>..." contenteditable="true"></div>   
<select id="privacy" name="privacy">
<option value="1">Public</option>
<option value="2">Friends</option>
</select>
<select id="comments" name="comments">
<option value="1">Comments On</option>
<option value="2">Comments Off</option>
</select>
<input title="Share <? echo $data["fullname"] ?>'s ststus to your wall" style="cursor:pointer;color:#FFF;" type="submit" id="button" value="Share">
</form>

<div id="display"></div>

<script type="text/javascript">
$(function(){
$('.pop').unbind().click(function() {
var streamitem_id = $(this).attr('id');
$.ajax({
type:"POST", 
url: "sharecollect.php",
data: { streamitem_id: streamitem_id, },  
success: function(data) {
$('.pop').css('overflow-y', 'auto'); 
$('body').css('overflow', 'hidden');  
$("#sharecontent"+streamitem_id).html(data);
}
});
return false;
});
});
</script>


如果确实需要评估脚本,请不要使用
eval
,而是使用以下类似的方法:

void function(global) {
  'use strict';

  var betterEval;

  betterEval = function(src, context) {
    return Function.call(null, 'global', '"use strict";' + src)(context || global);
  };

  // usage
  betterEval('console.log(global);');
}(this);

您可以使用
$.getScript()
。。。使用GET HTTP请求从服务器加载JavaScript文件,然后执行它?[link])取决于脚本在
inserttest.php
中的设置方式。重要的是要了解,
document.ready
已出现在主页中
eval()
在HTML上不起作用。有些人已经声明了它的错误。因此,在inserttest.php页面中也要重复
document.ready
。这与在jQuery load()中运行脚本有什么关系?评估什么?看不出这是如何回答问题的AllSharpLange询问如何在响应中运行嵌入脚本。。。然后他可以这样做:
betterEval('var$=global.$;'+$('#容器脚本').text());)但是响应是html,
load()
将执行脚本标记alreadyHum,好的,对不起,我不熟悉jQuery。。。这只是一个关于eval的一般性通知,永远不要使用它
void function(global) {
  'use strict';

  var betterEval;

  betterEval = function(src, context) {
    return Function.call(null, 'global', '"use strict";' + src)(context || global);
  };

  // usage
  betterEval('console.log(global);');
}(this);