[英]Trying to take my current page file name and insert it into a redirect (Javascript)
[英]Javascript: Insert name of current file into a field?
我有幾個相同的 HTML 文件,它們都有不同的名稱:
3089.html
68985.html
101.html
...and more
每個文件都有一個 id 為“productsku”的輸入字段:
<input type='text' id='productsku' />
我希望這個字段填寫 HTML 文件的名稱。 我只想使用 Javascript 來執行此操作(我不想使用 jQuery,因為我不想為這么小的任務加載 jQuery 庫)。
這是我的 Javascript 代碼:
<script>
window.onload = function(){
document.getElementById('productsku').value=location.pathname;
}
</script>
它有效,但它放置了文件擴展名和路徑,而不僅僅是名稱。 例如,它放置/path/3089.html
而不僅僅是“3089”
有什么辦法可以糾正這個嗎?
這是一個JS 小提琴。
怎么樣:
const parts = location.pathname.split('/'); // split the pathname into parts const [filename] = parts[parts.length - 1].split('.'); // take the filename from the last part of the path document.getElementById('productsku').value = filename;
<input type="text" id="productsku" />
這是可能的解決方案
let path = 'domainNameOrIPAddress/path/3089.html'; // let path = location.pathname; // Use this to get actual result let val = path.split('/').pop().replace('.html', ''); document.getElementById('productsku').value=val;
<input type='text' id='productsku' />
您可以使用正則表達式來提取它...
var path = "/this/that/other/12345.html"; console.log(path.match(/\/(\d+)\.html$/i)[1]);
希望這可以幫助你:
const productsku = /\/([^/]+)\.html/.exec(location.pathname)[1]
document.getElementById('productsku').value=productsku;
更好的方法是從路徑中提取名稱,如下所示:
<script>
window.onload = function(){
var locationName = location.pathname.substring(location.pathname.lastIndexOf('/')+1, location.pathname.lastIndexOf('.html'));
document.getElementById('productsku').value=locationName;
}
</script>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.