我有一个包含项目列表的页面,点击任何一个项目ajax调用发送以获取服务器的响应,在响应页面上有脚本包含(“内联”),因为它是响应脚本未被触发的文本(“因为浏览器未检测到页面刷新”)是否有任何解决方法可以在ajax响应页面上触发脚本。
我尝试使用eval(),但它使页面无响应几秒钟(“阻碍网站性能”)是否有任何其他技术。
这是我从ajax调用调用的响应,此响应有一个脚本来显示播放器,但此页面上的脚本不会被触发。
<div class="audiomodule unlocked">
<div id="locked" class="icon_holder">
</div>
<div class="text_box">
<p>Listen to Audio</p>
<p class="secondline">SLIDE 4</p>
</div>
<div class="audioholder">
<div id="flashcontent1270162253375"></div>
<script type="text/javascript">
includeJWPlayerEmbed('http://172.200.88.55/player-licensed-54.swf','http://172.200.88.55/funds/skins/glow.zip', null, 'http://Healthcare-CurrentEconomicOverview.mp3', 'Healthcare-CurrentEconomicOverview.mp3', 'false', 'sound', '28', '222', 'flashcontent127','null');
</script><div class="date floatLeft" style="display:inline;">Updated as of: 12/31/11</div>
</div>
<script type="text/javascript">
window.onunload = function()
{
clearplayerCode("audioholder");
}
</script>
<div class="button_holder">
<div class="login_button"><a href="#"><span>Login</span></a></div>
</div>
<div class="clear"></div>
</div>
答案 0 :(得分:1)
eval
本身不会“阻碍表现”。这是你的代码需要很长时间才能执行。
实现目标的最佳方法是不将javascript作为响应发送,而是将其包含在页面中,并从ajax成功处理程序中调用它。您可能希望从服务器发回一些参数,以便将它们传递给脚本。
答案 1 :(得分:0)
不使用eval()
,您可以动态地将响应文本(javascript代码)注入您可以附加到文档中的<script>
元素内(例如,在<body>
元素中)
请参阅this example fiddle实际操作