[英]Differences in Chrome on various OS
我正在開發chrome擴展程序,遇到了一個非常奇怪的錯誤-我的代碼在Mac OS上運行良好,但在Windows和Linux版本的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);
});
});
});
};
更新:我要使用此代碼-是截屏和標簽URL,並將其發送到我的擴展程序頁面。 當用戶單擊我的擴展程序的圖標時,它會打開一個帶有兩個按鈕的彈出窗口,其中一個會觸發此功能。
在Mac Os中,所有功能都可以正常工作-此代碼獲取屏幕截圖,標簽URL,使用我的應用程序打開新標簽並在其中發送數據。 在chrome的Linux和Windows版本上,它不會發送數據,在彈出窗口中單擊圖標后,您只會打開一個空白標簽。
我認為這部分可能會引起問題:
var url;
chrome.tabs.getSelected(w.id, function(response) {
url = response.url;
});
//using url
其余代碼應包裝在回調函數中,否則不能保證執行順序。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.