javascript - Javascript - 将 URL 数组修剪到根域
问题描述
我正在开发一个 chrome 扩展程序,可以复制浏览器中所有选项卡的 url。问题是我只能在所有数组中修剪一个 url。有没有办法可以在弹出窗口中输出所有根域?提前谢谢
选项卡 URL 示例
youtube.com/asdwea/asdsa
google.com/asdwew
facebook.com/qwea/asd
弹出窗口的结果应该是
youtube.com
google.com
facebook.com
popup.html
<html>
<script src="popup.js"></script>
<body>
<div id="result"></div>
<div id="count"> all</div>
</body>
</html>
popup.js
chrome.windows.getAll({populate:true}, getAllOpenWindows);
function getAllOpenWindows(winData) {
var tabs = [];
for (var i in winData) {
if (winData[i].focused === true) {
var winTabs = winData[i].tabs;
var totTabs = winTabs.length;
for (var j=0; j<totTabs;j++) {
tabs.push(winTabs[j].url+ "</br>");
}
var domain = tabs[1].replace('http://','').replace('https://','').split(/[/?#]/)[0];
}
}
document.getElementById('count').innerHTML = tabs.length;
document.getElementById('result').innerHTML = domain;
}
解决方案
function getAllOpenWindows(winData) {
var tabs = [];
for (var i in winData) {
if (winData[i].focused === true) {
var domainStr = "";
var winTabs = winData[i].tabs;
var totTabs = winTabs.length;
for (var j=0; j<totTabs;j++) {
var str = winTabs[j].url+ "</br>";
tabs.push(str);
domainStr += str;
}
domainStr = domainStr.replace('http://','').replace('https://','').split(/[/?#]/)[0];
}
}
document.getElementById('count').innerHTML = tabs.length;
document.getElementById('result').innerHTML = domainStr;
}
我认为您需要的是连接所有字符串,就domainStr
在这里。由于您的问题与split
功能无关,因此我没有检查是否.replace('http://','').replace('https://','').split(/[/?#]/)[0];
有效。
推荐阅读
- python - 如何将多列融合为一列?
- laravel - 如何在 Laravel 中模拟 Job 对象?
- java - 如何在字符串中提取更多的“Key = val_1,...,val_n”?
- json - 使用 GoModifyTags 将 bson 标签添加到 go 结构
- laravel - PermissionManager 分配角色和权限 UI 缺失
- c# - 比较文本文件的第 1 列、第 2 列和第 3 列
- .net - 如何正确地将事件处理程序添加到控件的 EventHandlerList 中?
- r - 如何将此函数合并到 R 中的另一个函数中?
- python - 策划游戏:错误修复
- python - How to import a file from a dfferent folder?