我正在构建一个社交书签应用程序,供大公司使用。
它有一个简单的JavaScript书签,目前工作正常 - 书签允许用户从流行的浏览器中保存书签。它非常适用于公共Web链接 - 并且与浏览器无关。这种书签的最接近的例子是:
http://delicious.com/help/bookmarklets
当我在浏览器中查看PDF时(假设是Chrome / Mac):
这当然不起作用 - 因为没有办法在浏览器中查看的PDF上注入HTML标记。
在书签中设置非http资源链接的最佳方法是什么?我是否必须创建然后注入某种不可见的iframe,然后抓住一个父框架和它的URL以便能够保存它?
答案 0 :(得分:2)
我不了解所有浏览器,但在Firefox中,您可以在PDF文件和图像上注入Javascript和iFrame。这是因为图像和PDF文件实际显示在Firefox生成的特殊虚拟HTML页面中。我认为Chrome可能是一样的。
您可以通过打开PDF或图像,然后打开Web控制台(必须使用菜单,在这种情况下不能使用CTRL + SHIFT + K)来获取JS控制台,然后键入{{1}查看嵌入PDF或图像的实际虚拟HTML。
要检测无法向页面添加iFrame或其他HTML的情况,我可能会测试是否已定义document.documentElement,或者可能还有其他一些DOM元素。
对于任何不起作用的浏览器或文件类型组合,或者我只是想让事情变得更简单,我会在新的标签页或窗口中打开我的服务器上的页面并传递页面标题和位置到那个页面,如http://mysocialsite.tld/add-bookmark?title=file.pdf&location=http://anothersite.tld/file.pdf。我服务器上的那个页面将让用户完成书签处理。