Bunun da oldukça eski olduğunu biliyorum. Son zamanlarda, tıklanan öğeye bağlı olarak farklı özelliklere sahip diğer sitelere enjekte ettiğim bir bağlam menüsü oluşturma ihtiyacım vardı.
Oldukça kaba ve bunu başarmanın muhtemelen daha iyi yolları var. JQuery Bağlam menüsü Burada Bulunan Kitaplığı kullanır
Ben onu yaratmaktan zevk aldım ve yine de sizler bundan yararlanabilirsiniz.
İşte keman . Umarım dışarıdaki birine yardım edebilir.
$(function() {
function createSomeMenu() {
var all_array = '{';
var x = event.clientX,
y = event.clientY,
elementMouseIsOver = document.elementFromPoint(x, y);
if (elementMouseIsOver.closest('a')) {
all_array += '"Link-Fold": {"name": "Link", "icon": "fa-external-link", "items": {"fold2-key1": {"name": "Open Site in New Tab"}, "fold2-key2": {"name": "Open Site in Split Tab"}, "fold2-key3": {"name": "Copy URL"}}},';
}
if (elementMouseIsOver.closest('img')) {
all_array += '"Image-Fold": {"name": "Image","icon": "fa-picture-o","items": {"fold1-key1": {"name":"Download Image"},"fold1-key2": {"name": "Copy Image Location"},"fold1-key3": {"name": "Go To Image"}}},';
}
all_array += '"copy": {"name": "Copy","icon": "copy"},"paste": {"name": "Paste","icon": "paste"},"edit": {"name": "Edit HTML","icon": "fa-code"}}';
return JSON.parse(all_array);
}
// setup context menu
$.contextMenu({
selector: 'body',
build: function($trigger, e) {
return {
callback: function(key, options) {
var m = "clicked: " + key;
console.log(m);
},
items: createSomeMenu()
};
}
});
});