Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用调试器命令以模拟模式启动Chrome,但页面显示为PC版本_Javascript_Google Chrome_Google Chrome Extension_Device Emulation - Fatal编程技术网

Javascript 使用调试器命令以模拟模式启动Chrome,但页面显示为PC版本

Javascript 使用调试器命令以模拟模式启动Chrome,但页面显示为PC版本,javascript,google-chrome,google-chrome-extension,device-emulation,Javascript,Google Chrome,Google Chrome Extension,Device Emulation,在PC平台上,我想启动Chrome作为iPhone5设备模式来测试我的项目 现在,当选项卡更新时,我使用调试器命令Page.setDeviceMetricsOverride。 因此,我得到了正确的设备模式,但我的页面显示与PC版相同,而不是移动版。我希望我的页面显示的和iPhone5一样 有人能帮我吗 示例代码: var phonesArray=[ {标题:“苹果iPhone 4”,宽:320,高:480,设备比例系数:2,用户代理:“Mozilla/5.0(iPhone;U;CPU iPho

在PC平台上,我想启动Chrome作为iPhone5设备模式来测试我的项目

现在,当选项卡更新时,我使用调试器命令Page.setDeviceMetricsOverride。 因此,我得到了正确的设备模式,但我的页面显示与PC版相同,而不是移动版。我希望我的页面显示的和iPhone5一样

有人能帮我吗

示例代码:

var phonesArray=[
{标题:“苹果iPhone 4”,宽:320,高:480,设备比例系数:2,用户代理:“Mozilla/5.0(iPhone;U;CPU iPhone OS 4_2_1,像Mac OS X;en-us)AppleWebKit/533.17.9(KHTML,像壁虎)版本/5.0.2 Mobile/8C148 Safari/6533.18.5”,触摸:真,手机:真},
{标题:“苹果iPhone 5”,宽:320,高:568,设备比例系数:2,用户代理:“Mozilla/5.0(iPhone;CPU iPhone OS 7_0,如Mac OS X;en-us)AppleWebKit/537.51.1(KHTML,如Gecko)版本/7.0 Mobile/11A465 Safari/9537.53”,触摸:真,手机:真},
];
var={};
phonesArray.forEach(功能(电话){
电话[phone.title.replace(/\s+/gi,,)]=phone;
});
chrome.tabs.onCreated.addListener(函数(选项卡){
log(“chrome.tabs.onCreated…”);
如果(tab.url.indexOf(“chrome:/”))=0
&&tab.url.indexOf(“chrome开发工具:/”)=0
{
attach({“tabId”:tab.id},“1.0”);
sendCommand({“tabId”:tab.id},“Runtime.enable”,{},函数(msg){});
sendCommand({“tabId”:tab.id},“Page.enable”,{},函数(msg){});
log(“setDeviceMetricsOverride…”);
chrome.debugger.sendCommand({“tabId”:tab.id},“Page.setDeviceMetricsOverride”{
宽度:phones.appleiphone 5.width,
高度:phones.appleiphone 5.height,
deviceScaleFactor:phones.applePhone 5.deviceScaleFactor,
手机:phones.appleiphone 5.mobile,
EmulateView端口:正确,
fitWindow:错误
},函数(msg){});
chrome.debugger.sendCommand({“tabId”:tab.id},“Network.setUserAgentOverride”,
{userAgent:phones.AppleiPhone5.userAgent},函数(msg){
});
}
}); 
chrome.tabs.onUpdate.addListener(函数(tabId、changeInfo、tab){
日志(“chrome.tabs.onUpdated…”);
console.log(changeInfo);
如果(changeInfo.status==“正在加载”和&tab.url.indexOf(“chrome:/”))=0
&&tab.url.indexOf(“chrome开发工具:/”)=0{
log(“将调试器附加到关于:blank.tab.id=“+tab.id”);
attach({“tabId”:tab.id},“1.0”);
sendCommand({“tabId”:tab.id},“Runtime.enable”,{},函数(msg){});
sendCommand({“tabId”:tab.id},“Page.enable”,{},函数(msg){});
log(“setDeviceMetricsOverride…”);
chrome.debugger.sendCommand({“tabId”:tab.id},“Page.setDeviceMetricsOverride”{
宽度:phones.appleiphone 5.width,
高度:phones.appleiphone 5.height,
deviceScaleFactor:phones.applePhone 5.deviceScaleFactor,
手机:phones.appleiphone 5.mobile,
EmulateView端口:正确,
fitWindow:错误
},函数(msg){});
chrome.debugger.sendCommand({“tabId”:tab.id},“Network.setUserAgentOverride”,
{userAgent:phones.AppleiPhone5.userAgent},函数(msg){
});	
}

});
您需要发送命令
网络。在
网络之前启用
。设置useragentoverride
,如下所示:

 chrome.debugger.attach({tabId: tab.id}, "1.0", function(){

    if (!chrome.runtime.lastError) {

        chrome.debugger.sendCommand({tabId: tab.id}, "Network.enable", {}, function(result) {

            chrome.debugger.sendCommand({tabId: tab.id}, "Network.setUserAgentOverride", { userAgent : phones.AppleiPhone5.userAgent }, function(result){

            });
        });
    }
});
尽管它看起来确实按照您编写的方式工作,但在附加调试器并发送命令之后,您应该等待回调。此外,一旦附加了调试器,就不需要在更新选项卡时再次附加它