在ajax页面上脚本不起作用。任何解决方法

时间:2012-02-21 11:11:35

标签: javascript html ajax

我有一个包含项目列表的页面,点击任何一个项目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>

2 个答案:

答案 0 :(得分:1)

eval本身不会“阻碍表现”。这是你的代码需要很长时间才能执行。

实现目标的最佳方法是不将javascript作为响应发送,而是将其包含在页面中,并从ajax成功处理程序中调用它。您可能希望从服务器发回一些参数,以便将它们传递给脚本。

答案 1 :(得分:0)

不使用eval(),您可以动态地将响应文本(javascript代码)注入您可以附加到文档中的<script>元素内(例如,在<body>元素中)

请参阅this example fiddle实际操作