Js : 如何 Copy/Paste 文本包括从网页到我的 html 页面的超链接
Js : How to Copy/Paste text including hyperlinks from webpage to my html page
假设 thete 是互联网上的一个网页 www.random-webpage.com ,其中包含一些文本数据和隐藏的超链接 :
示例:
测试测试测试点击这里
然后,当单击“此处”时,它会打开超链接 www.myhyperlink.com
我的目的是能够使用 ctrl+c 复制整个文本并将其 ctrl+v 粘贴到我的 html textarea / 输入并捕获超链接的地址,而不仅仅是文本。
我是在 Angular 应用程序下做的,但是可以用 js 或 angular
来处理吗
建议 ?
如本文所述link:
https://developer.mozilla.org/en-US/docs/Web/API/ClipboardEvent/clipboardData
你应该使用 clipboardData.getData(format)
并且格式是 'text/html'
但首先你需要将侦听器绑定到 paste 事件。
让我们看看整个代码:
let box = document.getElementById('boxLikeTextarea');
let textarea = document.getElementById('textarea');
box.addEventListener('paste', function(e) {
e.preventDefault();
let html = e.clipboardData.getData('text/html');
box.innerHTML = html;
});
textarea.addEventListener('paste', function(e) {
e.preventDefault();
let html = e.clipboardData.getData('text/html');
textarea.innerHTML = html;
});
#boxLikeTextarea {
-moz-appearance: textfield-multiline;
-webkit-appearance: textarea;
border: 1px solid gray;
font: medium -moz-fixed;
font: -webkit-small-control;
height: 28px;
overflow: auto;
padding: 2px;
resize: both;
width: 400px;
}
<textarea id="textarea">I am a textarea</textarea>
<div id="boxLikeTextarea" contenteditable>I look like a textarea</div>
注: 因为 Textarea 不能显示 link 而只显示 text 你应该有一个 div 像 Textarea 来显示 link 在
假设 thete 是互联网上的一个网页 www.random-webpage.com ,其中包含一些文本数据和隐藏的超链接 :
示例:
测试测试测试点击这里
然后,当单击“此处”时,它会打开超链接 www.myhyperlink.com
我的目的是能够使用 ctrl+c 复制整个文本并将其 ctrl+v 粘贴到我的 html textarea / 输入并捕获超链接的地址,而不仅仅是文本。
我是在 Angular 应用程序下做的,但是可以用 js 或 angular
来处理吗建议 ?
如本文所述link:
https://developer.mozilla.org/en-US/docs/Web/API/ClipboardEvent/clipboardData
你应该使用 clipboardData.getData(format)
并且格式是 'text/html'
但首先你需要将侦听器绑定到 paste 事件。
让我们看看整个代码:
let box = document.getElementById('boxLikeTextarea');
let textarea = document.getElementById('textarea');
box.addEventListener('paste', function(e) {
e.preventDefault();
let html = e.clipboardData.getData('text/html');
box.innerHTML = html;
});
textarea.addEventListener('paste', function(e) {
e.preventDefault();
let html = e.clipboardData.getData('text/html');
textarea.innerHTML = html;
});
#boxLikeTextarea {
-moz-appearance: textfield-multiline;
-webkit-appearance: textarea;
border: 1px solid gray;
font: medium -moz-fixed;
font: -webkit-small-control;
height: 28px;
overflow: auto;
padding: 2px;
resize: both;
width: 400px;
}
<textarea id="textarea">I am a textarea</textarea>
<div id="boxLikeTextarea" contenteditable>I look like a textarea</div>
注: 因为 Textarea 不能显示 link 而只显示 text 你应该有一个 div 像 Textarea 来显示 link 在