通过URL参数在远程页面上设置Iframe源

时间:2012-09-06 19:58:14

标签: javascript jquery html iframe parameter-passing

我正在使用3页。

shop_mobile.php

此页面从MySQL数据库中检索产品数据并列出其格式。它接受url参数brand = BRANDNAME和cat = CATEGORY。

以下是此页面的两个示例:
http://solanocycle.com/shop_mobile.php?brand=KYMCO&cat=KYMCO%20Scooters

http://solanocycle.com/shop_mobile.php?brand=peacesports&cat=Peace%20Sports%20Scooter

vehicles.html

此页面包含查看特定产品列表页面的链接(即“KYMCO Scooters”,“Peace Sports Scooters”)。点击这些链接时,它们都应该将用户带到同一页面(view.html),但是传递URL参数,这些参数告诉view.html中的iframe将哪个url用作其源。

view.html

此页面包含一个Iframe,它从来自vehicles.html

的链接传递的网址参数中获取其来源

注意:

我尝试使用How do I pass URL parameter to an iFrame in Wordpress page?提供的解决方案来解决我的问题,但我之前从未使用过jquery而且我无法使其正常工作。

非常感谢任何帮助。

更多信息

Vehicles.html的链接示例

<a href="view.html?http://solanocycle.com/shop_mobile.php?brand=KYMCO&cat=KYMCO%20Scooters">KYMCO Scooters</a>

我认为View.html应该做什么:

  1. 从网址“view.html?http://solanocycle.com/shop_mobile.php?brand=KYMCO&cat=KYMCO%20Scooters”中提取“http://solanocycle.com/shop_mobile.php?brand=KYMCO&cat=KYMCO%20Scooters”并将其存储为名为$ embedLink的变量。

  2. 以$ embedLink作为源网址显示iframe。

1 个答案:

答案 0 :(得分:0)

假设您在vehicles.html上的链接结构合理,如下所示:

view.html URL = HTTP:?//solanocycle.com/shop_mobile.php品牌= KYMCO&安培;猫= KYMCO%20Scooters

view.html的必要jQuery是:

<script type="text/javascript">
$(document).ready(function(){
    var regex = /\?url=(.*)/,
    $embedLink = document.location.href.match(regex)[1];
    $('iframe').attr('src', $embedLink);
});
</script>

显然,你会用iframe的id或类替换'iframe'来更具体。

替代方法是使用php提取请求参数并将其回显以代替iframe的src属性:

<?php $embedLink = (isset($_GET['url']) ? $_GET['url'] : ''); ?>

<iframe src="<?php echo $embedLink; ?>"></iframe>

我建议在两种情况下都对请求参数进行清理,以防止XSS。