首先,我应该说清楚我不是程序员(只是计算即将开展的项目的细节)。如果有些问题听起来很愚蠢,请放轻松。
基本上,我需要创建一个浏览器书签。这可以拖到用户的状态栏。这就是它应该如何工作:当我在任何特定的网页上时,我可以从页面中选择一些内容并点击书签。执行此操作时,bookmarklet应将所有选定数据保存在我的数据库中。
现在,我想知道的是,如果我还想存储所选文本中的所有格式,超链接等,这是否可行。例如,我在浏览器窗口上选择的网页部分可以包括一些图像,链接,粗体文本和三个段落。我可以通过简单点击书签来捕获所有这些吗?
非常感谢你的帮助。
PS:我试图在这个网站上搜索这些信息,但似乎没有答案可以解决这个具体问题。
答案 0 :(得分:0)
您可以通过提取选定的HTML来获得一些方法。要获得CSS格式,你需要一些相当繁重的处理,这超出了我的答案范围。您还需要将选定的HTML发送到服务器,您需要使用Ajax。
Ajax部分相当简单。有很多关于如何使用Ajax将值发布到服务器的教程。但是,您需要注意它只能在与您发布的服务器相同的域中的页面上工作,因此这可能会否定这样做作为书签,因为它不能只在任何地方使用在网上。
这是一个在所有主流浏览器中获取当前所选HTML的函数:
function getSelectionHtml() {
var html = "";
if (typeof window.getSelection != "undefined") {
var sel = window.getSelection();
if (sel.rangeCount) {
var container = document.createElement("div");
for (var i = 0, len = sel.rangeCount; i < len; ++i) {
container.appendChild(sel.getRangeAt(i).cloneContents());
}
html = container.innerHTML;
}
} else if (typeof document.selection != "undefined") {
if (document.selection.type == "Text") {
html = document.selection.createRange().htmlText;
}
}
return html;
}
alert(getSelectionHtml());