我已經成功創建了一個擴展,並且我使用extension.js中的一個警報來向用戶顯示最終消息,當他單擊上下文菜單時,但我想要一個使用js和html而不是javascript創建的自定義彈出窗口對話框警報。如何在交叉點中的上下文菜單上單擊時打開彈出窗口對話框?
請幫我該怎麼做。我的擴展程序適用於網頁上的鏈接。當單擊右鍵時,它會顯示上下文菜單,單擊它時會引發警報,但我想顯示該消息的良好彈出窗口。
我已經成功創建了一個擴展,並且我使用extension.js中的一個警報來向用戶顯示最終消息,當他單擊上下文菜單時,但我想要一個使用js和html而不是javascript創建的自定義彈出窗口對話框警報。如何在交叉點中的上下文菜單上單擊時打開彈出窗口對話框?
請幫我該怎麼做。我的擴展程序適用於網頁上的鏈接。當單擊右鍵時,它會顯示上下文菜單,單擊它時會引發警報,但我想顯示該消息的良好彈出窗口。
關鍵是瞭解您的代碼正在運行的scopes。 context menu在後臺作用域中運行,不能直接訪問活動頁面的DOM。因此,要實現一個解決方案,您必須從後臺範圍pass information到擴展的頁面範圍,並在該範圍內創建自定義彈出窗口或使用Crossrider's notification plugin。
下面的例子演示瞭如何使用通知插件實現:
extension.js:
appAPI.ready(function($) {
// Handler to receive messages
appAPI.message.addListener(function(msg) {
if (msg.type === 'show-notification')
showNotification(msg.notification);
});
function showNotification(data) {
// You can replace the notifier with your own custom code
appAPI.notifier.show({
'name':'my-notification-name',
'title':data.title,
'body':data.body,
'link':'http://example.com',
'theme':'default',
'position':'top-right',
'close':true,
'sticky':false,
'width':'400px',
'closeWhenClicked':true
});
}
});
重要:不要忘記添加通知插件到延期。
background.js:
appAPI.ready(function($) {
appAPI.contextMenu.add(
"CustomMI",
"Custom menu item",
function (data) {
// Send message to active tab when context menu item selected
appAPI.message.toActiveTab({
type: 'show-notification',
notification: {
title: 'Context Menu Item',
body: '<b>Veiwing page</b>: '+data.pageUrl
}
});
}, ["all"]
);
});
[披露:我是一個Crossrider員工]
非常感謝.... Shlomo .... –
嗨shiomo, 我該如何增加iframe的高度? –
如果您指的是通知的高度,高度自動調整爲身體內容高度。但是,如果您需要更細化的控制,則可以使用正文HTML內容注入樣式CSS以設置高度(例如600px),以便傳遞給通知程序的body屬性變爲:''body':''+ data.body'。 – Shlomo
可以請更好地解釋什麼叫 「彈出窗口」 是什麼意思?它是頁面上的疊加層還是實際的新窗口實例? – gkof
在這裏看到演示:-http://techpython.com/demo.html –
在上面的演示中,我需要點擊超鏈接然後彈出或者你可以說浮動來。我想實現相同的彈出窗口,當我的contextMenu中的命令被點擊時打開。 –