Я создаю расширение Chrome для комментирования текста на любом веб-сайте. Пока он .onmouseover
ввод в основное окно подсказки Javascript и отображает его обратно на .onmouseover
в окне предупреждения. Тем не менее, я хочу использовать использование qTip2 jQuery-плагина вместо использования окна предупреждения.
Вот как выглядит мой manifest.json в настоящее время:
"content_scripts": [{"matches": ["http://*/*", "https://*/*"],
"js": ["content.js", "jquery-1.3.2.min.js", "jquery.qtip.min.js"],
"run_at": "document_start",
"all_frames": true
}],
Здесь фрагмент, который принимает аннотацию и отображает его:
function surroundSelection() {
var span = document.createElement("span");
span.style.backgroundColor="yellow";
//prompt box to enter annotation
var text = prompt("Enter annotation below:");
//shows the annotated text on mouseover
span.onmouseover=function(){
alert(text);
}
if (document.getSelection()) {
var sel = document.getSelection();
if (sel.rangeCount) {
var range = sel.getRangeAt(0).cloneRange();
range.surroundContents(span);
sel.removeAllRanges();
sel.addRange(range);
}
}
}
Я просмотрел несколько примеров qTip2 в действии, и все они работают с некоторым атрибутом HTML, таким как класс или идентификатор, следующим образом:
$(document).ready(function()
{
// Match all link elements with href attributes within the content div
$('#content a[href]').qtip(
{
content: 'Some basic content for the tooltip' // Give it some content, in this case a simple string
});
});
Мой вопрос: как мне заставить qTip работать над моей аннотацией?
Поскольку ваш объект span
является элементом DOM, вы, вероятно, можете просто
$(span).qtip({
"key1": value1,
"key2": value2,
...
"keyN": valueN
});
после range.surroundContents(span);
вместо строк .onmouseover
, пока ваши ссылки jQuery и qTip2 уже действительны.
Вы можете передать элементы DOM в jQuery, чтобы получить объект jQuery для этого элемента, как показано в документации. Образец qTip просто хочет подключить действительный объект jQuery.
Чаще всего люди делают это с помощью селекторов, но там (возможно) нет причин, по которым вы не могли бы
range.surroundContents(span);
и .onmouseover
биты? Спасибо!
span
который вы используете вspan.onmouseover
?