-2

我有包含 iframe(此 iframe 内的子页面)的 html 页面(父页面),此 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 页面。如何通过父页面滚动 iframe 页面,

它在 IE 中有效,Crome但在firefox. 此代码有任何替代方案。请建议。我的页面网址是

http://localhost:8989/schoolforms/SelectForm?formTypeID=STUDENT_EMERGENCY

这是我window.location.href"的 iframe 价值

http://localhost:8088/schoolforms/StudentEmergency?student=B874BCC3EA5B83670988C959E9F0036B&anchor=InsuranceInfo

解析anchor containsInsuranceInfo之后,这个函数url就变成了

http://localhost:8088/schoolforms/StudentEmergency?student=B874BCC3EA5B83670988C959E9F0036B&anchor=InsuranceInfo#InsuranceInfo
4

2 回答 2

0

JQuery bbq 有一个很好的“deparam”功能

https://github.com/cowboy/jquery-bbq/

var params = $.deparam.querystring(); 
window.location.hash = params['anchor']
于 2013-05-08T11:20:46.007 回答
0

缺少太多信息,无法理解您到底想要实现什么。我想您需要将页面滚动到具有来自window.location.href锚变量的 id 的锚。

我不知道你的函数 parseParameter() 是如何工作的,我需要相信它运行良好。

location.hash包含 # 之后的 URL 部分,例如 #news 等。因此,如果您将字符串传递给location.hash ,浏览器会将此字符串添加到 URL 并滚动到具有相同 ID 的 html 元素。

影响

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(我猜是毫秒单位),它会随着动画滚动(延迟)。如果您离开 0,它将立即滚动到该元素,不会有任何延迟。

$('html, body').animate({scrollTop: $('#'+anchor).offset().top}, 400);
于 2013-05-08T11:48:32.987 回答