使用jQuery从URL弹出iFrame

时间:2015-06-22 15:15:38

标签: javascript jquery html jquery-mobile iframe

我已经继承了一些代码,并且我尝试添加一个增强功能,该功能将使用URL打开popup样式iframe。代码的布局方式是html窗口和"内容"中有不同的tab-panes。选项卡显示#post-body中的信息(位于内容选项卡中)。在内容选项卡中,其中一条信息是URL。

目前代码如下:

HTML:

    <!-- Tab panes -->
        <div class="tab-content" style= "height: 100%;">
          <div class="tab-pane" id="top-assoc"></div>
          <div class="tab-pane active" id="top-rank"> </div>
          <div class="tab-pane" id="top-tags"></div>
          <div class="tab-pane" id="content-body-tab" style="height: 100%;">
            <div id="post-body" style="padding: 15px;"> Select a post to preview </div>
          </div>
        </div>

JS:

$("#post-body").append($('<div>').addClass("post-view").append(
    [$('<p>').append($('<span>').addClass('bold').text("Post: ")),
        $('<div>', { "style": "font-size: 20px;"}
        ).html(postObj.content),
        $('<div>', { "style": "padding-top: 10px;"})
            .append($('<span>').addClass('bold').text("URL: "))
            .append($('<a>', { "href": postObj.url,
                "target": "_blank" }).html(postObj.url))),
        $('<div>', { "style": "padding-top: 10px;"})
            .append($('<p>', { "style": "overflow-wrap: break-word"})
                .append($('<span>').addClass('bold').text("Users: "))...morecode

所以我做了改变这一点的是我在html中添加了div,在javascript中添加了onclick函数。看起来像

HTML:

      <div class="tab-pane" id="content-body-tab" style="height: 100%;">
        <div id="post-body" style="padding: 15px;"> Select a post to preview </div>
        <div id="post-frame" data-role="popup"><iframe id="framecontent" src="" width="80%" height="500"></iframe></div>
      </div>

JS:

 $('<div>', { "style" : "padding-top: 10px;"})
 .append($('<span>').addClass('bold').text("URL: "))
 .append($('<a>', { "href": postObj.url,
                    "target" : "_blank" }).html(postObj.url)).on("click", function() {
         $(#framecontent).attr("src", postObj.url);
     }),

我觉得应该有用,但根据Chrome Uncaught SyntaxError: Unexpected token ILLEGAL

的Chrome浏览器控制台,我得到$(#framecontent).attr("src", postObj.url);

我不确定为什么这不起作用?任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:3)

$(#framecontent).attr("src", postObj.url);

需要

$('#framecontent').attr("src", postObj.url);

如果您不明白原因,请查看http://www.w3schools.com/jquery/jquery_selectors.asp

它也可能是另一回事,但如果没有完整的代码,很难弄清楚是什么。