0

我目前正在我的页面上直接嵌入第三方 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 请求并以某种方式解析响应,这样我就可以获得我需要的值。

有没有更好的方法?

4

3 回答 3

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 说。

于 2012-11-28T23:31:26.367 回答
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>
于 2012-11-28T23:45:14.247 回答
0
$(document).read(function()
{
  $.getScript(/* src */)
});

这将在页面加载后运行。

$.getScript()

于 2012-11-28T23:30:31.203 回答