2017-04-26 167 views

回答

3

你可以做使用JavaScript以下。 Pop返回字符串的最後一個元素,然後可以使用replace函數來獲取文件名,而不是.html。

function getFilename() { 
    return {{ Page Path }}.split('/').pop().replace('.html', ''); 
} 

我看到{{頁路徑}}可能是一些模板語言,但你可以修改上面的腳本,得到當前的URL,然後拿到文件名作爲如此。

function getFilename() { 
    return window.location.href.split('/').pop().replace('.html', ''); 
} 

此外,你可以使它更具動態性來處理任何文件擴展名如下。您需要使用indexOf然後sub string從文件名開始到期間的位置獲取期間指數。

function getFilename() { 
    var filename = window.location.href.split('/').pop(); 
    return filename.substr(0, filename.lastIndexOf('.'); 
} 
+0

第二個選項完美運作。頁面路徑是我正在處理的網站上GTM中的現有變量。萬分感謝。 –

+0

@KevinPhillips沒問題,如果你要處理html以外的文件,你可能想查看第三個選項。如果您想回答您的問題,請將我的答案標記爲已接受。謝謝! – kyle

0

function getFileName(url) { 
 
    return url.split("/").pop().split(".")[0]; 
 
} 
 
var url = "https://www.mealenders.com/shop/index.php/shop/solo-pack.html"; 
 
console.log(getFileName(url));

0
var sFilename = "solo-pack.html"; 
var iIndexOfPeriod = sFilename.indexOf("."); 
var sFilenameWithoutExtension = sFilename.substring(0, iIndexOfPeriod); 
+0

如果文件名中沒有'.'會怎麼樣? –

+0

在這種情況下,沒有擴展名。 –

0

如果您需要擺脫任何擴展,可以使用.replace()用正則表達式:

var url = "https://www.mealenders.com/shop/index.php/shop/solo-pack.html"; 
 

 
function getFilename (path) { 
 
    return path.toString().split('/').pop().replace(/\.\w+$/, ''); 
 
} 
 

 
console.log(getFilename(url));

這將例如改變測試/ index.html的分成index,但index.php.default分成index.php,還有test.name.with.dots.txttest.name.with.dots

0
function() { 
var value={{Page Path}}.split("/"); 
var fileName= value.reverse()[0].split('.')[0]; 
return fileName; 
} 
相關問題