Aak*_*thy 16 html browser popup
是否可以使用不同的用户代理加载iframe?使用iframe的移动用户代理可以帮助我的应用将移动网站显示为悬停弹出窗口.
例如,仅当用户代理来自移动用户代理时,Google才会显示移动搜索结果页面.
有没有其他解决方案或这个想法有任何安全风险?
首先,您必须创建一个更改用户代理字符串的函数:
function setUserAgent(window, userAgent) {
if (window.navigator.userAgent != userAgent) {
var userAgentProp = { get: function () { return userAgent; } };
try {
Object.defineProperty(window.navigator, 'userAgent', userAgentProp);
} catch (e) {
window.navigator = Object.create(navigator, {
userAgent: userAgentProp
});
}
}
}
Run Code Online (Sandbox Code Playgroud)
然后你需要定位iframe元素:
setUserAgent(document.querySelector('iframe').contentWindow, 'Aakash Chakravarthy Mobile Agent');
Run Code Online (Sandbox Code Playgroud)
您还可以为iframe设置ID并定位ID而不是页面上的所有iframe元素.
你可以用JavaScript做到这一点:
navigator.__defineGetter__('userAgent', function(){
return 'foo' // customized user agent
});
navigator.userAgent; // 'foo'
Run Code Online (Sandbox Code Playgroud)
但是,这仅适用于选定数量的浏览器.
看到这个问题:在javascript中模拟一个useragent?