我有html页面(父页面),其中包含iframe(此iframe中的子页面), 这个java脚本函数使用内部页面链接获取我想要滚动iframe的位置。
function scrollToAnchor ()
{ //function parseParameter return the query string value from the url
var anchor = parseParameter(window.location.href,'anchor');
if (anchor != null)
{
location.hash=anchor;
}
}
but anchor value in iframe page source not in parant page,
这不能滚动iframe页面。通过parant页面滚动iframe页面,
它适用于IE和Crome
但不适用于firefox
。有这个代码的任何替代品。请建议。
我的parant页面网址是
http://localhost:8989/schoolforms/SelectForm?formTypeID=STUDENT_EMERGENCY
这是我的window.location.href"
值,适用于iframe
http://localhost:8088/schoolforms/StudentEmergency?student=B874BCC3EA5B83670988C959E9F0036B&anchor=InsuranceInfo
在解析锚点后,在此函数url变为
之后包含InsuranceInfo
http://localhost:8088/schoolforms/StudentEmergency?student=B874BCC3EA5B83670988C959E9F0036B&anchor=InsuranceInfo#InsuranceInfo
答案 0 :(得分:0)
JQuery bbq有一个很好的'deparam'功能
https://github.com/cowboy/jquery-bbq/
var params = $.deparam.querystring();
window.location.hash = params['anchor']
答案 1 :(得分:0)
太多缺少信息,无法理解您想要实现的目标。我想您需要将页面滚动到锚点,其中包含来自 window.location.href 的锚点变量的ID。
我不知道你的函数parseParameter()是如何工作的,我需要相信它运行良好。
location.hash 包含#之后的URL部分,例如#news等。因此,如果您将字符串传递给 location.hash ,则会将此字符串添加到网址并滚动到具有相同ID的html元素。
<强> EFFECT 强>
http://localhost:8088/schoolforms/StudentEmergency?student=B874BCC3EA5B83670988C959E9F0036B&anchor=InsuranceInfo#InsuranceInfo
这不是一个好方法,因为在那之后你的URL中会有锚变量和哈希。
尝试
function scrollToAnchor ()
{
var anchor = parseParameter(window.location.href,'anchor');
if (anchor != null)
{
$('html, body').animate({scrollTop: $('#'+anchor).offset().top}, 0);
}
}
我使用了.animate(),因为如果你想要你可以在这一行0改为例如默认值,即400(我猜ms单位),它将滚动动画(延迟)。如果你离开0,它将立即滚动到元素,没有任何延迟。
$('html, body').animate({scrollTop: $('#'+anchor).offset().top}, 400);