【问题标题】:Find attr('href') and open inside hidden iframe on the page, then show() iframe (jQuery + PHP)找到 attr('href') 并在页面上的隐藏 iframe 中打开,然后 show() iframe (jQuery + PHP)
【发布时间】:2012-06-13 06:02:54
【问题描述】:

语言:PHP 和 jQuery

我想要做的是当用户点击它时弹出一个动态链接。
我不希望在新窗口中打开页面,而是在覆盖当前页面的模态窗口中打开。

因此,对于 javascript,当用户单击此链接时,操作是找到链接的 attr href 并为该链接编写代码,使其位于模态窗口内的 iframe 内。

带有动态 PHP 链接的 HTML

 <a href="http://www.facebook.com/share.php?u=<?php echo $root_url; ?>?id=<?php echo $rows['id']; ?>&title=<?php echo urlencode($rows['keyword']); ?>" style="border: none;" onclick="return false;" class="fblink" target="iframe"><img src="./img/Facebook.png" style="float: right; margin-top: 0px;" title="Share on Facebook" alt="Share on Facebook" id="<?php echo $rows['id']; ?>"></a>

jQuery 脚本

    var makePop = function() {
    link = $(this).attr('href');
    return '<div class="the_box" id="box" style="display: block;"><a class="boxclose" id="boxclose"></a>
    <iframe src="' + link + '" height="500px" width="600px" id="" name="iframe"></iframe></div>';
    } // End of Function.

    $("a.fblink").click(makePop);

我不知道如何做到这一点...这不起作用。
有人吗? :o)

【问题讨论】:

    标签: php javascript jquery function dynamic


    【解决方案1】:

    从事件处理函数返回一个字符串是没有意义的,它不会做任何事情。

    您需要实际创建模态窗口。试试jQuery UI

    【讨论】:

      【解决方案2】:

      以下内容应提供您所寻找的内容。但是需要考虑 XHR 'load' 调用的同源策略等问题。

      参见示例:http://jsfiddle.net/qeXea/2/
      注意: 由于相同的来源政策,iframe 无法填充内容,只需在您的网站上设置您自己的页面并使用您的自己的网址来查看。

      HTML

      <a href="http://www.yoururl.com" onclick="launchUrl(this); return false;">Click Here</a>
      <div id="fade"></div>
      <iframe id="dialog" src=""></iframe>
      <script type="text/javascript">
      function launchUrl(owner) {
          $('#fade').show();
          var link = $(owner).attr('href');
          $('#dialog').load(link, function(response) {
              $('#dialog').show();
          });
      }
      </script>
      

      CSS

      #fade {
          top: 0;
          left: 0;
          width: 100%;
          height: 100%;
          z-index: 100;
          display: none;
          position: absolute;
          background-color: rgba(255, 255, 255, 0.5);
      }
      
      #dialog {
          top: 100px;
          left: 100px;
          width: 200px;
          height: 200px;
          z-index: 101;
          display: none;
          position: absolute;
      }
      

      另类

      HTML

      <a href="" onclick="launchUrl('http://www.yoururl.com'); return false;">Click Here</a>
      <div id="fade"></div>
      <iframe id="dialog" src=""></iframe>
      <script type="text/javascript">
          function launchUrl(link) {
              $('#fade').show();
              $('#dialog').load(link, function(response) {
                  $('#dialog').show();
              });
          }
      </script>
      

      【讨论】:

      • 谢谢@JonWarnerNet,但我无法让它工作。点击后,它会像普通链接一样转到链接页面。我以前注意到,当我使用onclick="function here 时,不会发生任何事情,所以我必须从脚本$("a.link").click(function() { 中点击一次
      • 我注意到onclick在找不到函数时不会触发(显然如果找不到它就无法调用js函数)。如果您在 Firefox 中运行 Firebug,您会注意到一个控制台日志,通知该功能不存在。修复(我相信)是将脚本块移动到页面底部(在
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多