URL とタイトルを 1 つのハイパーリンクにフォーマットして、一度にリンクのグループ全体を保存したいことがよくあります。フォーマットされた URL とタイトルをコピーする chrome 拡張機能に取り組んでいます。
マニフェスト.json
{
"name": "Copy Tabs",
"version": "0.1",
"description": "Creates a keyboard shortcut (Ctrl + Shift + C) which copies links for selected tabs",
"permissions": [
"tabs",
"clipboardWrite",
"clipboardRead"
],
"background": {
"persistent": false,
"scripts": ["jquery.js","background.js"]
},
"commands": {
"copy-tabs": {
"suggested_key": { "default": "Ctrl+Shift+C" },
"description": "Copy Selected Tab Links"
}
},
"manifest_version": 2
}
background.js
chrome.commands.onCommand.addListener(function(command) {
if (command == "copy-tabs") {
// declare text element
var text = "";
// only look for highlighted tabs in the current window
queryInfo = new Object();
queryInfo.highlighted = true;
queryInfo.currentWindow = true;
// get tabs
chrome.tabs.query(queryInfo, function(tabs) {
// loop through tab results
for (var i = 0; i < tabs.length; i++) {
//add hyperlink to text
text += "<a href='" + tabs[i].url + "'>" + tabs[i].title + "</a>";
}
});
//copy text to clipboard
copyTextToClipboard(text);
}
});
copyTextToClipboard
// Copy provided text to the clipboard.
function copyTextToClipboard(text) {
var copyFrom = $('<textarea/>');
copyFrom.text(text);
$('body').append(copyFrom);
copyFrom.select();
document.execCommand('copy');
copyFrom.remove();
}
問題:
2 つの問題があります。タブのプロパティからリンクを作成すると、コピーは実際には機能しませんが、text = "<a href='www.google.com'>Google</a>";
すべてが正常に機能することを手動で指定すると、. 開発者ツールでは、インライン ツール ヒントはテキストが適切に形成されているように見えますが、ローカル変数ウィンドウはテキスト変数がまだ として設定されているように見えます""
。
第二に、貼り付けると、適切な書式設定が得られません。
次のようになります。
<a href='www.google.com'>Google</a>
しかし、私が欲しいのはこれです: