(i)帧中的命名锚点不会跳转到

时间:2013-05-08 10:44:25

标签: javascript jquery jsp firefox

我有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

2 个答案:

答案 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);