Полезная информация

Список ответов на каверзные вопросы можно получить в FAQ-разделе форума.

№111-07-2009 19:04:45

questor
Участник
 
Группа: Extensions
Откуда: Москва
Зарегистрирован: 07-12-2004
Сообщений: 101
UA: Firefox 3.5

поймать контекстное меню ?

Есть одно расширение, очень маленькое и простое, но очень полезное. take me to this URL называется, многие думаю знают его.
Мне что не нравится в нём - это, если просто правой кнопкой щёлкнуть по какой-либо ссылке и выбрать 'take me to this url', то открывается страница iGoogle - просто потому что текста не выделено (в этом случае пользователь отправляется в поисковик):

Выделить код

Код:

if (window.getSelection){
	txt = content.window.getSelection();
	}
	txt1 = txt.toString();
	if(txt1.indexOf(".") == -1){
	txt1 = 'http://www.google.com/search?q='+txt1
	}
	else if(txt1.match("http://") == null && txt1.match("ftp://") == null ){
	txt1= 'http://'+txt1
	}
	document.getElementById("content").addTab(txt1);
	//window.open(txt1,target="_blank","toolbar=1,menubar=1,location=1,fullscreen=0,status=1");
//	window.location.href =txt1

Понятно, что это не баг: раз это уже ссылка, то её можно просто открыть ЛЕВЫМ щелчком мыши (ещё и с зажатым ctrl для удобства), и это даже будет быстрее.
Но вот хочу именно так переписать дополнение "под себя". В какую сторону копать? window.getSelection читал, вроде бы не через него надо делать.

Помогите, кто решал подобные задачи. (Можно просто подсказать в каких расширениях есть похожий функционал - кастомизируется right-click меню ДЛЯ ССЫЛОК, А НЕ ТЕКСТА - посмотрю в коде сам, как это у них реализовано)

Отсутствует

 

№211-07-2009 21:09:02

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
UA: Firefox 3.5
Веб-сайт

Re: поймать контекстное меню ?

questor пишет

если просто правой кнопкой щёлкнуть по какой-либо ссылке и выбрать 'take me to this url', то открывается страница iGoogle - просто потому что текста не выделено

Если вместо выделенного текста должен быть url ссылки, то, вроде бы надо после

Выделить код

Код:

if (window.getSelection){
    txt = content.window.getSelection();
    }

добавить

Выделить код

Код:

else if (gContextMenu && gContextMenu. link)
{
	txt = gContextMenu. linkURL;
}

Но проверять лень, поэтому не уверен.


Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№311-07-2009 21:27:20

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4339
UA: Firefox 3.5

Re: поймать контекстное меню ?

Anton пишет

Но проверять лень, поэтому не уверен.

Судя по
chrome://browser/content/nsContextMenu.js

Выделить код

Код:

if (gContextMenu && gContextMenu. onLink)

Хотя с точки зрения эффекта должно быть все равно.


Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№411-07-2009 21:46:41

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
UA: Firefox 3.5
Веб-сайт

Re: поймать контекстное меню ?

Infocatcher
Да, похоже на то.

Я поверил "this.link              = false;", так нечестно : )


Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№511-07-2009 22:20:46

questor
Участник
 
Группа: Extensions
Откуда: Москва
Зарегистрирован: 07-12-2004
Сообщений: 101
UA: Firefox 3.5

Re: поймать контекстное меню ?

Фу, блин! Полез по форуму искать onLink - сразу нашёл ответ на свой вопрос. Правильно говорят: правильно поставленный вопрос - половина ответа!
Всем спасибо за советы!

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]