这个问题特别适用于所有支持特征检测而不是浏览器检测的人。
我以前使用浏览器检测来更改 iframe 的大小,该 iframe 会在 Firefox 和 ie 中切断部分嵌入页面,但现在它不适用于 ie 11。
我有一个来自不同域的页面显示为 i-frame。外部页面上唯一的内容是格式化的文本。我根据 chrome 中的内容设置 iframe 的高度,以使所有文本都被完美地框起来。Safari 和 Opera 使用 Chrome 设置,但 Firefox 和 IE 显示的 iframed 页面大于 chrome 导致部分文本被截断。如果检测到 Firefox 或 IE,我使用更改高度的函数解决了这个问题:
function changeHeight(divName) {
var userAgent = navigator.userAgent.toLowerCase();
var is_IE = userAgent.indexOf('msie') > -1;
var is_firefox = userAgent.indexOf('firefox') > -1;
if (is_IE) {
document.getElementById('storyP').style.height = '67447px';
}
if (is_firefox) {
document.getElementById('storyP').style.height = '67375px';
}
}
这工作正常,直到 IE 更改其用户代理字符串。
所以我决定倾听所有说不要检测浏览器、检测功能的人。
问题:什么功能?
如果可能的话,我完全不知道如何使用特征检测来解决这个问题。