bookmarklet可以存储配置数据吗?

时间:2016-11-28 10:30:25

标签: javascript bookmarklet

根据我的理解,bookmarklets将使用页面的原点执行,并在其中调用它们。虽然这几乎是它们有用的原因,但它限制了书签保持状态的能力。

具体来说,我想存储书签的配置数据。用例可以是例如允许持久的站点独立定制行为,而无需更改代码。

其他标准包括

  • 保护书签配置免受其他书签的不必要访问
  • 与受信任的其他书签共享bookmarklet配置
  • 保护可能的恶意网站的书签配置。

一个极端的例子是使用Dropbox等第三方文件托管服务同步内容的书签,这需要安全地存储身份验证密钥。

有没有这种可能性?

附加说明

  • 我主要使用iOS在iOS和Windows上添加行为。 iOS部分阻止使用浏览器扩展(无论如何都会限制可移植性)。
  • 我正在尝试专门使用bookmarklet,因为我可以访问服务器,因此与webservices相关的bookmarklet中使用的某些技术不适用。

我想到的可能的解决方法

  • 配置可以手动放入书签中,例如通过在像github这样的公共服务上托管主javascript,并创建一个代理书签,用#加载它 - 选项,例如

    javascript:function runBmlet(url){ var s=document.createElement("script"); s.src=url; document.head.appendChild(s); }; runBmlet("http://url.of/my/script.js#DropboxData=YOURDATAHERE");
    

    然而,从长远来看,这比将配置存储在类似于localStorage的东西要方便得多。

    编辑该解决方案遗憾地根本不起作用;某些网页阻止使用策略script-src 'unsafe-eval' ...从不受信任的来源加载javascript,并包含javascript文件,例如通过mime类型检查阻止来自Dropbox或Github。

0 个答案:

没有答案