我正在构建Chrome扩展程序以在任何网站上注释文本。到目前为止,它需要在基本的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的实例,它们都以下列方式处理类或ID之类的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处理我的注释?
答案 0 :(得分:1)
由于你的span
对象是一个DOM元素,你可能只是
$(span).qtip({
"key1": value1,
"key2": value2,
...
"keyN": valueN
});
在range.surroundContents(span);
之后而不是.onmouseover
行,只要你的jQuery和qTip2引用已经有效。
您可以将DOM元素传递给jQuery,以获取该元素as shown in the documentation的jQuery对象。 qTip示例只需要插入有效的jQuery对象。
大多数情况下人们会选择这样做,但是可能没有理由你没有