标签: bookmarklet

修改document.location以打开新的选项卡/窗口,而不是在当前选项卡中导航

我想编写一个书签,它将修改任何网页,以便当该页面上的JavaScript代码执行类似操作时,document.location = 'http://site.tld'或者document.location.href = 'http://site.tld'页面将打开新的选项卡或窗口而不是更改位置; 就像代码一样window.open('http://site.tld');

我能以某种方式修改原型以实现这一目标吗?(我不小心使用这个词,因为虽然我已经阅读了几次修改原型,但我从未真正做过.)或者还有其他方法吗?

javascript bookmarklet

14
推荐指数
1
解决办法
3423
查看次数

小书签如何避免弹出窗口阻止程序

我写了一个书签,用于在弹出窗口中使用Google Translator快速翻译所选文本:

javascript:(function(){
    var text = encodeURI(document.getSelection());
    if (!text.length) {
        text = prompt('Texto')
    }
    var url = 'http://translate.google.com/translate_t?hl=&ie=UTF-8&text=' + text + ' &sl=es&tl=pt#';
    window.open(url,'trans','left=20,top=20,width=1000,height=500,toolbar=0,location=0,resizable=1');
})();
Run Code Online (Sandbox Code Playgroud)

但是,Firefox弹出窗口阻止程序不允许打开新窗口.我可以为每个使用弹出窗口的网站添加例外,但它可能非常烦人......

我认为bookmarklets可以打开弹出窗口 - 实际上,很多人都这样做,对吧?我究竟做错了什么?或者是不可能做到的?

javascript firefox bookmarklet popup

13
推荐指数
2
解决办法
3778
查看次数

从bookmarklet将文本复制到剪贴板

我正在尝试编写一个小书签,可以从活动页面中提取一些文本并将其加载到剪贴板中.

提取很容易,但我真的很难做剪贴板复制部分.目前,我正在alert阅读文本并点击Ctrl+ C来复制消息框中的文本,这并不理想.

我已经阅读了如何在JavaScript中复制到剪贴板以及其他建议我使用zeroclipboard的问题,但我不知道如何从书签中完成这项工作,考虑到我必须加载外部 flash和javascript资源才能使用图书馆.

我没有弄乱页面的DOM来实现这一点,或者必须在我的浏览器(谷歌浏览器)上启用一些权限,考虑到这只是一个私人书签.

任何指针将不胜感激.

javascript clipboard google-chrome bookmarklet

13
推荐指数
6
解决办法
1万
查看次数

JSLint和Bookmarklets

我跑的JSLint在检查犀牛使用jslintant.js.

我发现有些奇怪的东西,并想知道我是否可以从其他程序员那里得到一些意见.基本上,以下行获取JSLint "脚本URL"错误:

var a = '<a href="javascript:alert(\'I am a bookmarklet\');" >Drag me to your Toolbar</a>';
Run Code Online (Sandbox Code Playgroud)

错误:

Lint at line 124 character 35: Script URL.
Run Code Online (Sandbox Code Playgroud)

我已经进入了道格拉斯· 克罗克福德fulljslint.js中编写的代码,并发现他确实按如下方式对此进行了测试:

// javascript url
jx = /(?:javascript|jscript|ecmascript|vbscript|mocha|livescript)\s*:/i,
Run Code Online (Sandbox Code Playgroud)

因此,考虑到这种约束以及拖放bookmarklet仅使用A标记的HREF属性这一事实.我们如何动态创建通过JSLint测试的bookmarklet?

感谢您的输入.

javascript bookmarklet jslint rhino

13
推荐指数
1
解决办法
3404
查看次数

查找所有文本节点

我正在尝试编写一个书签,doSomething(textNode)在文档的所有可见文本实例上调用该函数.

doSomething(),只是为了好玩,通过替换传入其中的textNode的textContent,用"derp"替换每个单词.但是,这会使一些空文本节点中包含单词,因此会破坏网页.

有没有办法doSomething()只调用每个包含单词的textNode?

function recurse(element)
{
    if (element.childNodes.length > 0) 
        for (var i = 0; i < element.childNodes.length; i++) 
            recurse(element.childNodes[i]);

    if (element.nodeType == Node.TEXT_NODE && element.nodeValue != '') 
        doSomething(element);
}
var html = document.getElementsByTagName('html')[0];
recurse(html);
Run Code Online (Sandbox Code Playgroud)

javascript recursion bookmarklet textnode

13
推荐指数
1
解决办法
6769
查看次数

如何阻止Chrome在复制/粘贴时将相对链接转换为绝对链接?

我复制从富文本divcontenteditable="true"并将其粘贴到一个中等草案.大多数格式保存得很好,但由于某种原因,我不明白所有相关链接都转换为绝对链接.我不知道这发生了什么步骤.我甚至认为Medium可以听"粘贴"事件.这将是最糟糕的情况,因为我几乎无法控制它.但如果是这样,他们如何访问我复制内容时的页面网址?事实上,在与其他浏览器核实后,我认为这是Chrome的错,而不是中等.在Safari上它完美运行,在Firefox上根本不起作用(但这是另一个问题的话题......).

为了使事情更清楚,我试图通过编写一个基本相同的书签来模仿我在Wordpress博客上使用的脚注插件的行为.

这是一个演示页面,您可以使用类似wiki的语法粘贴文本以进行内联引用,并将它们解析为适当的脚注:

https://rawgit.com/arielpontes/footnoter/master/index.html

在两种使用模式中([1]复制/粘贴到演示页面或[2]使用书签),生成的html具有适当的相对链接.然而,在Chrome浏览器上重新回到Medium后,它们变得绝对,指向rawgit.com并破坏了功能.

但是,如果我从本地计算机上运行代码而不是rawgit.com,那么即使在Chrome上粘贴,链接也会保持相对形式.

可能会发生什么?有没有办法解决它?

javascript jquery google-chrome copy-paste bookmarklet

13
推荐指数
1
解决办法
1258
查看次数

获取当前网址但没有http://部分书签!

伙计们我有一个问题,希望你能帮我解决这个问题.我有一个书签;

javascript:q=(document.location.href);void(open('http://other.example.com/search.php?search='+location.href,'_self ','resizable,location,menubar,toolbar,scrollbars,status'));
Run Code Online (Sandbox Code Playgroud)

获取当前网页的URL并在另一个网站中搜索它.当我使用这个书签时,它会包含整个URL http://并搜索它.但是现在我想更改这个书签,所以它只需要www.example.com或只是example.com(不http://)和搜索这个网址.是否可以这样做,你可以帮助我这个吗?

谢谢!

javascript url host bookmarklet

11
推荐指数
2
解决办法
2万
查看次数

使用Javascript更改所选文本的CSS

我正在尝试制作一个javascript书签,它将充当荧光笔,在按下书签时将网页上所选文本的背景更改为黄色.

我正在使用以下代码来获取所选文本,并且它工作正常,返回正确的字符串

function getSelText() {
var SelText = '';
if (window.getSelection) {
    SelText = window.getSelection();
} else if (document.getSelection) {
    SelText = document.getSelection();
} else if (document.selection) {
    SelText = document.selection.createRange().text;
}
return SelText;
Run Code Online (Sandbox Code Playgroud)

}

但是,当我创建一个类似的函数来使用jQuery更改所选文本的CSS时,它不起作用:

function highlightSelText() {
var SelText;
if (window.getSelection) {
    SelText = window.getSelection();
} else if (document.getSelection) {
    SelText = document.getSelection();
} else if (document.selection) {
    SelText = document.selection.createRange().text;
}
$(SelText).css({'background-color' : 'yellow', 'font-weight' : 'bolder'});
Run Code Online (Sandbox Code Playgroud)

}

有任何想法吗?

javascript css jquery bookmarklet highlighting

11
推荐指数
2
解决办法
1万
查看次数

Bookmarklet打开一个新窗口将当前窗口转发到[Object Window]?

我正在使用一个小书签,在新窗口中打开一个网页.它适用于chrome.

但是,当我在Firefox中使用相同的内容时,它会打开一个带有新网页的新窗口,但点击此书签的页面将转发到带有文本的某个页面[object Window].我该如何解决这个问题?

我的代码:

<a href="javascript:open('http://www.google.com','targetname','height=500,width=500');">Bookmarklet</a>
Run Code Online (Sandbox Code Playgroud)

请让我知道如何解决这个问题.

谢谢

javascript firefox google-chrome bookmarklet

11
推荐指数
1
解决办法
5860
查看次数

如何CSS沙盒/重置当前页面中的整个DIV区域?

我们正在开发一个书签,当书签加载到不同的网站上时,例如:cnn.com,bbc.co.uk,yahoo.com,它以各种风格显示,我们很难重置这些样式.

bookmarklet内容位于当前页面DOM中,而不是iframe中(因为我们需要cookie并访问DOM).

我们尝试使用CSS重置,但这只重置一些基本的东西,比如边距.例如,有一个自定义表单的页面,或者它继承的圆形表矩形,它不应该.

有没有办法让我们可以完全隔离当前页面中的DIV区域,只显示我们想要的内容?

html javascript css bookmarklet

10
推荐指数
1
解决办法
3322
查看次数