我正在開發一個Chrome擴展,並且遇到了一個非常奇怪的錯誤 - 我的代碼在Mac OS上運行良好,但在Windows和Linux版本的Chrome上無法正常工作。版本相同。Chrome在各種操作系統上的差異
function captureAllScreen() {
chrome.windows.getCurrent(function(w) {
chrome.tabs.captureVisibleTab(w.id, {"format":"png"}, function(response) {
var image = response;
var url;
chrome.tabs.getSelected(w.id, function(response) {
url = response.url;
});
var viewTabUrl = [chrome.extension.getURL('app.html'),
'?id=', id++].join('');
chrome.tabs.create({url: viewTabUrl}, function(tab) {
var targetId = tab.id;
var addSnapshotImageToTab = function(tabId, changedProps, tab) {
if (tabId != targetId || changedProps.status != "complete") {
return;
};
chrome.tabs.onUpdated.removeListener(addSnapshotImageToTab);
var views = chrome.extension.getViews();
for (var i = 0; i < views.length; i++) {
var view = views[i];
if (view.location.href == viewTabUrl) {
view.twm_Draw.sendScreen(image, url); //Application-specific method
break;
}
}
window.close();
};
chrome.tabs.onUpdated.addListener(addSnapshotImageToTab);
});
});
});
};
更新: 我想這個代碼做什麼 - 是採取截圖和標籤網址,並將其發送到我的擴展的頁面。當用戶點擊我的分機的圖標時 - 它會打開一個帶有兩個按鈕的彈出窗口,其中一個會觸發此功能。
在Mac Os中一切正常 - 此代碼需要屏幕截圖,標籤url,用我的應用程序打開新選項卡並在那裏發送數據。在Linux上& chrome的Windows版本中,它不會發送數據,點擊彈出窗口中的圖標後,您只需打開一個空白標籤頁。
你可能想描述這是應該做/不做的,以獲得有用的答案。 – nwellcome
更新了問題 – evindor
我在使用多個WebKit瀏覽器時遇到類似問題。 Chrome的作品和Android不。 –