从控制台运行脚本,但从Bookmarklet打印变量?

时间:2019-09-21 21:11:08

标签: javascript css google-chrome chromium bookmarklet

我喜欢用JavaScript/Bookmarklets来体验我的 Chrome / Chromium 体验,但是现在我遇到了以下问题:

代码

javascript:/*img2float*/ var str=prompt("src of img to float",document.querySelector("img").getAttribute('src'));str.length>0?content=str:content="Alap/Alap00.gif",document.querySelector("img[src*='"+content+"']").style.cssText="position:fixed;left:0;top:0;max-height:200px;box-shadow: 1px 1px 46px -21px;opacity:0.9";

解释

    第一个
  1. var src=prompt("src of <img> to float",document.querySelector("img").getAttribute('src')); src 属性
  2. scr.length>0? 如果 不为空
  3. var ThisDOM=src: ThisDOM = 提示值其他
  4. ThisDOM="Alap/Alap00.gif", 默认,最常用的设置
  5. document.querySelector("img[src*='"+ThisDOM+"']"). 选择所需的
  6. style.cssText=添加所需的 css样式
  7. "position:fixed;left:0;top:0;max-height:200px;box-shadow: 1px 1px 46px -21px;opacity:0.9"; CSS样式设置

问题

  • [✔]从 DevTools>控制台运行代码,将css样式设置正确应用于图像,
  • [ø],但是从 Bookmarklet 运行,仅打印出 css样式设置 (解释为7 。)

1 个答案:

答案 0 :(得分:0)

在美化上述问题的过程中,我尝试将代码包装到如下所述的函数中:javascript - function as google chrome bookmark,终于成功了!

包装器

javascript:(function(){ })();

最终密码

javascript:/*img2float*/ (function(){var scr=prompt("src of img to float",document.querySelector("img").getAttribute('src'));scr.length>0?ThisDOM=scr:ThisDOM="Alap/Alap00.gif",document.querySelector("img[src*='"+ThisDOM+"']").style.cssText="position:fixed;left:0;top:0;max-height:200px;box-shadow: 1px 1px 46px -21px;opacity:0.9";})();

但是我仍然很好奇为什么没有函数包装器就无法工作?