我刚刚开始学习 javascript,所以我没有能力弄清楚我认为是一个小问题。

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

我只想能够在评论页面上选择一堆文本并单击一个书签(http://bookmarklets.com)在 Firefox 中会弹出一个窗口,列出在选择中找到的所有 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 的 .

谢谢大家的帮助,伙计们。

有帮助吗?

解决方案

在 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 插入其中)。

其他提示

使用正则表达式来检测 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})+$/

作为小书签

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"));
        }
    }
})

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top