将嵌入式JavaScript转换为ajax调用

时间:2012-11-28 23:25:12

标签: javascript ajax jquery

我目前正在我的网页上直接嵌入第三方javascript文件。

但是,我嵌入它的网站需要一段时间才能响应,所以它会停止渲染我的网站几秒钟。

我目前正在将它嵌入我的页面,它会写出一些值:

<script language="javascript" type="text/javascript" src="[third-party site/file.js]"></script>

嵌入式脚本的响应只是一些JavaScript:

document.write('<div class="value">Value 1</div><div class="value">Value 2</div>');

我想在页面加载后使用jQuery发出一个AJAX请求并以某种方式解析响应,这样我就可以得到我需要的值。

有更好的方法吗?

3 个答案:

答案 0 :(得分:1)

您可以将此脚本放在正文末尾的隐藏元素中(就在</body>之前),并在页面加载后,使用jQuery将其移动到所需位置。

    <div id="hiddenElement">
        <script type="text/javascript" src="[third-party site/file.js]"></script>
    </div>
    <script type="text/javascript">
        $(document).ready(function() {
            $("#hiddenElement").appendTo("#someOtherElement");
        });
    </script>
</body>

另一个解决方案是使用jQuery .getScript()将脚本加载到所需的位置,就像你说的那样,@ James McDonnell说。

答案 1 :(得分:0)

$(document).read(function()
{
  $.getScript(/* src */)
});

这将在页面加载后运行。

$.getScript()

答案 2 :(得分:0)

也许这可能是您解决方案的一部分。这是一个独立的jQuery示例,其中一个按钮用于触发DIV上的更改事件。此示例仅向您展示如何访问div的html内容以及如何操作/更改它。这不是一个适合你的解决方案,但是当与rcdmk和James的想法结合使用时,它的一部分可能会有用。

<html>
    <head>
        <!--<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>-->
        <script src="http://code.jquery.com/jquery-latest.js"></script>
        <script type="text/javascript">
            $(document).ready(function() {
                $('#button_test').click(function() {
                    $('.value').html('New stuff').change();
                });
                $('.value').change(function(){
                    $('div').each(function() {
                        alert($(this).html());
                    });
                });
            });
        </script>
    </head>
<body>


<div class="value">Value 1</div>
<div class="value">Value 2</div>
<button id="button_test">Click me</button>