首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在jQuery.html(<object data=“.html)中添加旋转器

如何在jQuery.html(<object data=“.html)中添加旋转器
EN

Stack Overflow用户
提问于 2016-06-06 21:48:23
回答 1查看 1.6K关注 0票数 0

我使用Jquery加载外部网站(我自己的)。

代码语言:javascript
复制
<div id="siteloader"><center>
<img style="width: 100px; height: 100px;" src="http://seafood.greenpeaceusa.org/images/spinner.gif" alt="Mountain View" /></center></div>
​
    <script src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
    <script>
$( document ).ready(function() {
   $("#siteloader").html('<object "width:100%; height:2000px; data="http://example.com/findex.php">');
});
</scirpt>

正如您现在所看到的,我正在div中加载spinner并用外部网站html替换div的内容,但是它在下载网站时正在替换它,我能让它等到网站被下载后才替换html吗?

顺便说一句,由于某种原因,.load方法不适合我。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-06 22:07:05

您的object在document.ready代替div的内容。它应该在加载对象时完成。

代码语言:javascript
复制
<script>
$( document ).ready(function() {
   //$("#siteloader").html('<object "width:100%; height:2000px; data="http://example.com/findex.php">'); syntax errors here
   //this doesn't work as well
   $('<object "width:100%; height:2000px; data="http://example.com/findex.php">')
      .load(function(){
          $("#siteloader").empty().append(this);
      });
});
</script>

固定工作脚本:

代码语言:javascript
复制
    <script>
$( document ).ready(function() {
    /*
    //wrong again spinner disappear before object loaded
    $('<object style="width:100%; height:400px; display:none;" data="http://www.w3schools.com/tags/helloworld.swf" />')
        .appendTo($("#siteloader"))
        .after(function () {
          console.log('loaded');
          $(this).show().siblings().each(function () {
              $(this).remove();
          });
      });
    */
        //and this work for sure
        var obj = document.createElement('object');
        obj.onload = function () {
            console.log('loaded');
            $(this).css({ width: '100%', height: '400px' }).show()
                .siblings().each(function () {
                    $(this).remove();
                });
        };
        obj.data = 'json.php';
        $(obj).appendTo('#siteloader');

});
    </script>

我希望它也能和你的数据一起工作。这看起来很难看(混合jquery和纯JS),但这是唯一能让它工作的方法。$(obj).appendTo('#siteloader')触发负载。

以防万一,PHP使用:

代码语言:javascript
复制
<?php
usleep(10000000);
echo '{"name":"qwas","qty":10,"curr":"'.date('h:i:s').'"}';
?>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37667393

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档