在新页面上打开iframe中的链接

时间:2016-12-15 13:30:34

标签: javascript jquery html iframe

大家好,我有一个有效的解决方案,这个简介已经改变了一些意义,我现在需要找到一个解决方法。

场景是我有一个按钮,当点击它时会在iframe中打开一个特定的URL。使用以下代码时效果很好:

<a class="two_nights iframebutton_pink" href="buttonurl" target="bookingiframe" onclick="location.href='#booking'">Januar</a>

<script>
$("[target='bookingiframe']").on('click',function () {
  $("#ifr").attr('src',$(this).attr('href'));
  scrollt();
});
</script>

这是向下移动到页面上的iframe并更改源。这是iframe:

`<a id="booking"><div class="frame_container"><iframe name="bookingiframe" src="generalurl" width="100%" height="8000" frameborder="0" scrolling="0"></iframe></div></a>`

iframe的内容现在需要位于列出白名单的页面上,因此此解决方案无法正常工作。我需要做的是点击按钮,然后打开一个打开iframe的新页面,并将URL更改为按钮的URL。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

您需要使用Iframe创建一个页面。

假设网址为 yoursite.com/iFrame.html

您现在需要将预订网址发送到该新网页。所以我们将使用URL param来做到这一点。

所以你的最终网址看起来像 的 yoursite.com/iFrame.html*?url=h#tp://www/bookingurl.com.....*

现在,在新页面上,您需要以下额外代码才能从参数中获取网址并加载iFrame。

function getParameterByName(name, url) {
    if (!url) {
      url = window.location.href;
    }
    name = name.replace(/[\[\]]/g, "\\$&");
    var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
        results = regex.exec(url);
    if (!results) return null;
    if (!results[2]) return '';
    return decodeURIComponent(results[2].replace(/\+/g, " "));
}

现在粘贴后,您可以使用代码填充iFrame。

<script>
$(document).ready(function () {
  $("#ifr").attr('src',getParameterByName(url));
});
</script>

函数getParameterByName读取预订URl并加载Iframe。

所以最终的代码将是

<a class="two_nights iframebutton_pink" href="yoursite.com/iFrame.html*?url=h#tp://www/bookingurl.com....." target="bookingiframe" target="_blank">January</a>

上面的JS代码