Javascript检查页面网址,然后加载相应的iframe?

时间:2013-06-07 21:05:59

标签: javascript jquery iframe

我可以就我遇到的问题得到一些指示吗?

简短版

有谁知道我是否可以使用javascript加载特定的iframe,具体取决于父页面的名称:

如果页面名称=“http://www.example.com/products/pens”,则iframe content = pens.htm

如果页面名称=“http://www.example.com/products/electronics”,则iframe content = electronics.htm

更多信息

我需要改进电子商务商店的导航,这是一种现成的设置,您只能使用css和一些javascript对商店进行品牌和重新设计,或者插入HTML块。大约有14个父类别,每个类别中大约有10个子类别。

我想将自动高度iframe html块添加到类别页面模板中,并使用它来显示子类别和图像列表。

我是否可以使用一些javascript来检测类别页面名称,然后加载相应的iframe?

我想使用一个HTML块,并根据父页面名称加载十个iframe。

非常感谢任何帮助

戴夫

4 个答案:

答案 0 :(得分:1)

您可以将iframe指向最初的“选择器”页面...然后在那里,检查父级的位置,然后进行重定向。

例如:

这将在类别页面中。

<iframe src="Picker.htm"></iframe>

这将是“Picker.htm”的内容

<script type="text/javascript">

switch (parent.location.href.toLowerCase())
{
    case "http://www.example.com/products/pens":
        location.href = "pens.htm";
        break;

    case "http://www.example.com/products/electronics":
        location.href = "electronics.htm";
        break;
}

</script>

答案 1 :(得分:1)

检查路径名中是否有'笔'或'电子',并相应更改iframe源:

if (window.location.pathname.match('pens')) {
    $('iframe').attr('src', 'pens.htm');
    // document.getElementById('id').src = 'pens.htm'; // 'id' = id of iframe
    // or, if iframe has no id, use document.getElementsByTagName('iframe'), etc.
} else if (window.location.pathname.match('electronics')) {
    $('iframe').attr('src', 'electronics.htm');
    // document.getElementById('id').src = 'electronics.htm';
}

编辑:由于允许使用jQuery,我已经注释掉了本机JS的答案并使用了jQuery

答案 2 :(得分:0)

您可以检查主document.location并相应地设置src的{​​{1}}属性。那是你在找什么?

答案 3 :(得分:0)

if (window.location.href.toLowerCase().indexOf('/products/pens') > 0){
$('#iframeid').attr('src', '/pens.html');
} else if (window.location.href.toLowerCase().indexOf('/products/electronics') > 0){
$('#iframeid').attr('src', '/electronics.html');
}

或者如果页面上不存在iframe,您可以通过jquery:

添加它
if (window.location.href.toLowerCase().indexOf('/products/pens') > 0){
   $('.iframePlaceHolder').append('<iframe src="pens.htm" />');
} else if (window.location.href.toLowerCase().indexOf('/products/electronics') > 0){
   $('.iframePlaceHolder').append('<iframe src="electronics.htm" />');
}

如果您不使用JQuery,可以执行以下添加iframe:

var newIframe = document.createElement('iframe');
if (window.location.href.toLowerCase().indexOf('/products/pens') > 0){
    newIframe.src = "pens.htm";
} else if (window.location.href.toLowerCase().indexOf('/products/electronics') > 0){
    newIframe.src = "electronics.htm";
}
document.getElementById('idOfPlaceHolder').appendChild(newIframe);