如何强制浏览器在 Edge 中粘贴 url 而不是页面标题
How to force browser to paste url and not page title in Edge
我需要用户从外部站点 copy-paste urls 在我的网页的可编辑 div 中(“contentEditable="true")
在 Edge 中,当用户粘贴 url 时,它会自动粘贴页面标题而不是 url。
我想强制浏览器粘贴 url 而不是页面标题。我该怎么做?
非常感谢
.editablediv {
height: 50px;
width: 300px;
background-color: lightgray;
padding: 3px 3px 3px 3px;
}
<div contentEditable="true" class="editablediv">https://</div>
它在Edge中粘贴标题,因为Edge中有复制粘贴设置。你可以看到在Edge中默认情况下,它会粘贴link而不是纯文本:
如果你想强制粘贴url(纯文本),你可以使用如下代码。它将捕获粘贴事件并允许您直接以文本形式获取剪贴板数据:
document.querySelector("div[contenteditable]").addEventListener("paste", function(e) {
e.preventDefault();
var text = e.clipboardData.getData("text/plain");
document.execCommand("insertHTML", false, text);
});
.editablediv {
height: 50px;
width: 300px;
background-color: lightgray;
padding: 3px 3px 3px 3px;
}
<div contentEditable="true" class="editablediv">https://</div>
我需要用户从外部站点 copy-paste urls 在我的网页的可编辑 div 中(“contentEditable="true")
在 Edge 中,当用户粘贴 url 时,它会自动粘贴页面标题而不是 url。
我想强制浏览器粘贴 url 而不是页面标题。我该怎么做?
非常感谢
.editablediv {
height: 50px;
width: 300px;
background-color: lightgray;
padding: 3px 3px 3px 3px;
}
<div contentEditable="true" class="editablediv">https://</div>
它在Edge中粘贴标题,因为Edge中有复制粘贴设置。你可以看到在Edge中默认情况下,它会粘贴link而不是纯文本:
如果你想强制粘贴url(纯文本),你可以使用如下代码。它将捕获粘贴事件并允许您直接以文本形式获取剪贴板数据:
document.querySelector("div[contenteditable]").addEventListener("paste", function(e) {
e.preventDefault();
var text = e.clipboardData.getData("text/plain");
document.execCommand("insertHTML", false, text);
});
.editablediv {
height: 50px;
width: 300px;
background-color: lightgray;
padding: 3px 3px 3px 3px;
}
<div contentEditable="true" class="editablediv">https://</div>