業務要求努力設置iframe的用戶代理,以滿足:在iframe中加載的現有頁面,模仿iPhone手機的用戶代理。這需要發生客戶端的原因是,有客戶端腳本它檢測用戶代理並將一些類附加到html元素。基於此,CSS的目標是基於html類的元素,網站的風格將會發生根本性的變化。通過javascript
所以它會採取並把它變成或在我試圖鉻內這裏等
使用window.open作品(如證明這個代碼)解決的情況下。該網站呈現適當的移動樣式。
使用iframe的作品,但只有在FF。
理想情況下,我想有iframe的版本在Chrome和FF工作。
有什麼想法?
<script type="text/javascript">
navigator.__defineGetter__('userAgent', function() {
return 'Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_3_2 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8H7 Safari/6533.18.5';
});
var win = window.open('/home/get');
win.navigator.__defineGetter__('userAgent', function() {
return 'Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_3_2 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8H7 Safari/6533.18.5';
});
win.location.href = '/home/get'; //required
$(function() {
var frame = $('<iframe width="320" height="480"></iframe>');
frame.hide();
$('#container').append(frame);
(frame[0].contentWindow || frame[0].contentDocument).navigator.__defineGetter__('userAgent', function() {
return 'Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_3_2 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8H7 Safari/6533.18.5';
});
frame.attr('src', '/home/get');
});
frame.fadeIn();
});
</script>
1)我已經實現了一個通過c#webclient請求處理任何UA字符串的代理。然而,這不利於客戶端需求,這需要使用瀏覽器用戶代理。 2)我不能通過xhr(到我自己的代理頁面)來完成,因爲再次,最終的客戶端腳本將針對當前的瀏覽器用戶代理運行。 3)它在FF中工作。我想知道是否有人在Chrome中完成此操作。 – Mike
有趣。你可以設置一個jsfiddle到目前爲止你有什麼?可能確實能夠找到答案。 – Geuis