我可以仅通过浏览器窗口中的图像调用 Javascript 书签吗?例如:blah.com/blah.jpg?

发布于 2024-12-09 03:54:06 字数 255 浏览 0 评论 0原文

If I'm at a url... say http://i.imgur.com/JcxmE.jpg where it is just the image file, how can I make a window/div appear over the image when the bookmarklet is called?
Instapaper does this.
So far my bookmarklet loads an external javascript file, which in turn creates a div and appends it to the body.
This doesn't work when it is just an image.
Ideas?
Thank you!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

清晰传感 2024-12-16 03:54:06

好吧,看起来 Firefox 仍然会在图像上渲染 DOM。 hello world 示例仅当您将其粘贴在书签中时才有效,而不是直接粘贴在 URL 栏中。

只要您的浏览器呈现 DOM,即使在纯图像 url 上,下面的示例也应该有效。它将把图像插入到容器元素中。

javascript:(function(){
  var doc = document,
      image = doc.getElementsByTagName('img')[0],
      container = doc.createElement('div');

  doc.body.removeChild(image);
  container.appendChild(image);
  doc.body.appendChild(container);
})();

Alright it looks like firefox still renders a DOM even over images. The hello world example works only if you stick it inside a bookmarklet, but not straight in the url bar.

Here's an example that should work as long as your browser renders a DOM even on pure image urls. It will insert the image inside a container element.

javascript:(function(){
  var doc = document,
      image = doc.getElementsByTagName('img')[0],
      container = doc.createElement('div');

  doc.body.removeChild(image);
  container.appendChild(image);
  doc.body.appendChild(container);
})();
锦上情书 2024-12-16 03:54:06

嗯,看起来你做不到,至少在 Firefox 中做不到。即使像 javascript:alert('Hello World'); 这样简单的代码也不适用于图像。亲自尝试该代码。

Well it doesn't look like you can, at least not in Firefox. Even something as simple as javascript:alert('Hello World'); doesn't work on an image. Try that code for yourself.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文