我正在写一个基于iframe的Facebook应用程序.现在我想使用相同的html页面来呈现普通网站以及facebook中的画布页面.我想知道我是否可以确定页面是在iframe中加载还是直接在浏览器中加载?
我一直在寻找可以让我检测访问该网站的用户是否拥有Firefox 3或4的代码.我发现所有代码都是检测浏览器类型而不是版本.
如何检测这样的浏览器版本?
虽然两者都是基于Webkit的浏览器,但是在URL中的Safari urlencodes引号却没有.
因此我需要在JS中区分这两者.
jQuery的浏览器检测文档将"safari"标记为已弃用.
有没有更好的方法,或者我现在只是坚持使用已弃用的值?
我有一个带有scollbars的页面内的元素,通过JS调用将其带入页面加载视图element.scrollIntoView()- 这可以正常工作,如预期的那样.
现在,如果我将此页面放入IFRAME,调用element.scrollIntoView()不仅会将iframe中的元素带到iframe的顶部 - 如果父页面具有自己的滚动条 - 它也会滚动父页面以引入有问题的元素也是父页面的顶部.
我理解这可能是设计行为,但是有没有办法只将"scrollIntoView"行为包含在IFRAME中,或者是否有任何替代方法可以有这种行为(不影响父页面).
我在iframe的移动Safari上滚动到元素时遇到问题(它可在其他浏览器上使用,包括在Mac上的Safari)。
我使用scrollIntoView。当所有contnet都呈现后,我想滚动。这是我的代码:
var readyStateCheckInterval = setInterval(function () {
if (document.readyState === "complete") {
clearInterval(readyStateCheckInterval);
$browser.notifyWhenNoOutstandingRequests(function () {
if (cinemaName != null && eventId == null) {
scrollToCinema();
} else {
scrollToEvent();
}
});
}
}, 10);
function scrollToEvent() {
var id = eventId;
var delay = 100;
if (cinemaName != null) {
id = cinemaName + "#" + eventId;
}
if ($rootScope.eventId != null) {
id = $rootScope.cinemaId + "#" + $rootScope.eventId;
}
$timeout(function () {
var el = document.getElementById(id); …Run Code Online (Sandbox Code Playgroud)