這個問題在這里已經有了答案: <a href> 將鏈接附加到當前網址的末尾 2 個答案 6 天前關閉。
我將 URL 作為 HTML 表單中的用戶輸入,并使用 javascript 創建動態鏈接。當我以“https://www.google.com”的形式提供輸入時,代碼作業正常,但是當我以“google.com”之類的形式傳遞輸入時,它會將鏈接轉換為本地主機路徑,例如file:///path_where_html_exists /urlpassed 這是我的代碼
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
</head>
<body>
<form>
<input id="inputurl" type="url" />
<button type="submit" onclick="handleSubmit()">sunmit</button>
<script src="newscript.js"></script>
</form>
<div id="newpara"></div>
</body>
</html>
JS
function handleSubmit() {
event.preventDefault()
var elem = document.getElementById('inputurl').value
console.log(elem)
ele = document.getElementById('newpara')
ele.innerHTML = `<a href="${elem}">link here</a>`
}
謝謝
uj5u.com熱心網友回復:
如果您將文本放在鏈接的“href”屬性中,并且該文本在開頭沒有協議(http 或 https,或類似的),瀏覽器會將其附加到當前頁面 url 的末尾。
您可以在此JSFiddle中看到這一點。由于您通過在瀏覽器中打開檔案在您的電腦上對其進行測驗,您會看到您提到的網址。
要修復它,只需檢查文本是否有協議,并在必要時插入。一個非常基本的實作可能如下所示:
if (!elem.startsWith("http")) {
elem = "//" elem;
}
這個小提琴將告訴你如何。
這也是使用正則運算式的更好實作:
let reg = /^http(s)?:\/\//g;
if (!elem.match(reg)) {
elem = "//" elem;
}
uj5u.com熱心網友回復:
嘗試在輸入的網址似乎有效之前添加“http://”或“https://”
function handleSubmit() {
event.preventDefault()
var elem = document.getElementById('inputurl').value
console.log(elem)
ele = document.getElementById('newpara')
ele.innerHTML = `<a href="http://${elem}">link here</a>`
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/464302.html
標籤:javascript html 形式 锚
