7

Tôi đang phát triển tiện ích mở rộng chrome và gặp sự cố. Tôi đã thêm một mục vào menu ngữ cảnh của chrome và muốn mở một cửa sổ bật lên nếu mục menu được nhấp. Mã của tôi trông giống như sau:cửa sổ bật lên ở menu ngữ cảnh của tiện ích mở rộng chrome

function popup(url) { 
window.open(url, "window", "width=600,height=400,status=yes,scrollbars=yes,resizable=yes"); 
} 

chrome.contextMenus.create({"title": "Tumblr", "contexts":["page","selection","link","editable","image","video","audio"], "onclick": popup('http://example.com')}); 

Nhưng mã này không hoạt động như tôi muốn. Cửa sổ bật lên không xuất hiện sau khi nhấp chuột vào mục ngữ cảnh, mà là sau khi làm mới tiện ích mở rộng trong tùy chọn tiện ích của chrome.

Cảm ơn trước!

+0

Yap. Tôi đang sử dụng phiên bản 2. Nhưng làm thế nào tôi có thể làm điều đó bằng cách khác? Tôi không được học nhiều trong javascript. –

+0

@chaohuang Không có trình xử lý sự kiện nội tuyến trong mã OP. –

Trả lời

5
chrome.contextMenus.create({... "onclick": popup('http://example.com')}) 

gọi hàm popup ngay lập tức, khiến cửa sổ bật lên được mở. Bạn phải chuyển một tham chiếu đến một hàm. Để mã của bạn hoạt động, hãy kết thúc cuộc gọi hàm trong một hàm:

chrome.contextMenus.create({ 
    "title": "Tumblr", 
    "contexts": ["page", "selection", "link", "editable", "image", "video", "audio"], 
    "onclick": function() { 
     popup('http://example.com'); 
    } 
}); 

window.open() có thể được sử dụng để tạo cửa sổ bật lên. Một phương pháp thay thế (chỉ để cho bạn biết rằng nó tồn tại) là chrome.windows.create.

+0

Tuyệt vời! Nó hoạt động hoàn hảo. Cảm ơn rất nhiều! –

Các vấn đề liên quan