2

我刚刚开始学习 javascript,所以我没有技能来弄清楚我认为是一个微不足道的问题。

我正在使用一个作为社区常见问题解答的 Wordpress 博客,并且我正在尝试整合一些工具来更轻松地管理评论。 Internet Duct Tape 的 Greasemonkey 工具,例如 Comment Ninja,对大多数情况都有帮助,但我希望能够获得我们从中获得评论的所有 IP 地址的列表,以便跟踪趋势等。

我只想能够在评论页面上选择一堆文本,然后在 Firefox 中单击一个小书签 ( http://bookmarklets.com ),它会弹出一个窗口,列出在选择中找到的所有 IP 地址。

更新:

我将列维克雅各布的答案结合起来得出了这个结论:

javascript:ipAddresses=document.getSelection().match(/\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b/g).join("<br>");newWindow=window.open('', 'IP Addresses in Selection', 'innerWidth=200,innerHeight=300,scrollbars');newWindow.document.write(ipAddresses)

不同之处在于,我没有像列维克的回答那样发出警告消息,而是打开了一个类似于雅各布回答的新窗口。该警报不提供滚动条,这对于具有许多 IP 地址的页面来说可能是个问题。但是,与 Jacob 的解决方案不同,我需要列表是垂直的,因此我使用 levik 的提示来
为连接而不是 levik 的\n

感谢所有的帮助,伙计们。

4

5 回答 5

4

在 Firefox 中,您可以执行以下操作:

javascript:alert(
  document.getSelection().match(/\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b/g)
  .join("\n"))

这是如何工作的:

  • 从浏览器获取选择文本(在 FF 中为“document.getSelection()”,在 IE 中为“document.selection.createRange().text”)
  • 应用正则表达式来传输 IP 地址(如 Muerr 所建议的那样) - 这会产生一个字符串数组。
  • 将此数组连接成一个由返回字符分隔的字符串
  • 警报该字符串

在 IE 上获取选择的方式略有不同,但原理是一样的。要使其成为跨浏览器,您需要检查哪种方法可用。您还可以进行更复杂的输出(例如创建一个浮动 DIV 并将所有 IP 插入其中)。

于 2008-09-16T15:40:12.663 回答
1

使用正则表达式检测 IP 地址。几个例子:

/\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b/
/^([1-9][0-9]{0,2})+\.([1-9][0-9]{0,2})+\.([1-9][0-9]{0,2})+\.([1-9][0-9]{0,2})+$/
于 2008-09-16T14:37:56.213 回答
1

作为书签

javascript:document.write(document.getSelection().match(/\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b/g))

只需创建一个新书签并将该 javascript 粘贴到

如何在 Ubiquity 中做到这一点

CmdUtils.CreateCommand({
    name: "findip",
    preview: function( pblock ) {
        var msg = 'IP Addresses Found<br/><br/> ';
        ips = CmdUtils.getHtmlSelection().match(/\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b/g);
        if(ips){
            msg += ips.join("<br/>\n");
        }else{
            msg += 'None';
        }
        pblock.innerHTML = msg;
    },

    execute: function() {
        ips = CmdUtils.getHtmlSelection().match(/\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b/g);
        if(ips){
            CmdUtils.setSelection(ips.join("<br/>\n"));
        }
    }
})
于 2008-09-16T16:43:18.767 回答
0

是一篇关于获取访问者 IP 地址的好文章。如果您愿意,您可以在他们的评论之外显示此内容,或者将其作为标签或字段包含在您的页面中,以便您以后参考。

于 2008-09-16T14:34:15.753 回答
0

查看rot13 小书签,了解单击小书签时选择文本并执行操作(在本例中为替换)的示例。

于 2008-09-16T16:44:28.420 回答