我可以就我遇到的问题得到一些指示吗?
简短版
有谁知道我是否可以使用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。
非常感谢任何帮助
戴夫
答案 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);