2016-05-14 99 views
0

我對JavaScript非常陌生,但是我想創建一個腳本,只要點擊一個按鈕,就會將URL添加到數字中。 (如果可能的話,我還希望我的瀏覽器在每次執行該功能時都打開每個新創建的URL)。將腳本部分添加到URL的腳本

我認爲這必須使用str.replace,我寫了一些功能,但它不會工作,我不知道如何我的瀏覽器可以打開每次我運行該功能的新變量。

我在(在HTML文檔中)所做的功能在下面,所以你知道如何編輯它來做我想做的事嗎?如果需要,我可以提供更多信息。謝謝!

function { 
    var str = http://www.example.com/static/page/test/test.jhtml?channelID=11&seriesID=0&episodeNumber=001 
    var res = str.replace("(seriesID=)", "(seriesID=) + 1)"); 
} 
+0

你需要經過深入的基本面,因爲你的代碼是所有的地方:1)'function'需要一個名稱和括號。 2)URL需要用引號括起來。 3)另外,請閱讀'str,replace'的實際工作方式。 –

回答

0

該str似乎不是一個字符串。把''放在周圍。該功能缺失()。

function name() { 
     var str = 'http://www.example.com/static/page/test/test.jhtmlchannelID=11&seriesID=0&episodeNumber=001'; 
     var res = str.replace("(seriesID=)", "(seriesID=) + 1)"); 
     console.log(res); 
} 

name(); 

使用替換不起作用。

1

function setSeriesID(url, id) { 
 
    // var pattern = /(seriesID\=\d)/g; 
 
    var pattern = /(seriesID\=\d+)/g; // edited 
 
    
 
    return url.replace(pattern, 'seriesID=' + id); 
 
} 
 

 
var new_url_1 = setSeriesID('http: //www.example.com/static/page/test/test.jhtml?channelID=11&seriesID=0&episodeNumber=001', 1); 
 

 
alert("new_url_1 : " + new_url_1); 
 

 
// otherwise if you want to change multiple url params then use this : 
 

 
function set_id(parameter, url, id) { 
 
    // var pattern = new RegExp("(" + parameter + "\\=\\d)", 'g'); 
 
    var pattern = new RegExp("(" + parameter + "\\=\\d+)", 'g'); // edited 
 
    return url.replace(pattern, parameter + '=' + id); 
 
} 
 

 
var new_url_2 = set_id('seriesID', 'http: //www.example.com/static/page/test/test.jhtml?channelID=11&seriesID=0&episodeNumber=001', 1); 
 

 
alert("new_url_2 : " + new_url_2);

+0

seriesID正確後的'+'是否?這不是指1個或更多個D字符嗎? – PDN

+0

@PDN。感謝我只是一個錯誤:) – DININDU

+0

其實我只是建議你添加它:\ d +,因爲他們大多數流行系列有超過10集。 –

0

三個問題你的函數。

首先,str實際上並不是一個字符串,因此需要引號才能使它成爲有效的字符串。

var str = "http://www.example.com/static/page/test/test.jhtml?"channelID=11&seriesID=0&episodeNumber=001 

其次,replace()會用別的東西替換一個子字符串。在這種情況下,它正在搜索不存在的文字字符串"(seriesID=)"。擺脫括號:"seriesID="

最後,當您將一個數字添加到字符串時,javascript會將該數字轉換爲一個字符串並返回一個字符串。因此,單擊按鈕後,結果將始終爲"seriesID=1"。爲了解決這個問題,解析出數字並將其轉換爲一個數字,使用​​,您可以在另一個var number中存儲該數字,只要單擊該按鈕就可以添加1。最後,你會打電話更換:

str.replace('seriesID=', 'seriesID=' + number); 
0

可能看起來有點複雜,但這會做到你所需要的。

var str = 'http://www.example.com/static/page/test/test.jhtml?channelID=11&seriesID=0&episodeNumber=001'; 
 

 
function myFun() { 
 
    
 
    var n = str.indexOf("seriesID"); 
 
    var m = str.indexOf("&",n); 
 
    var y = str.substring(n, m); 
 
    var z = y.split('='); 
 
    
 
    str = str.replace(y, z[0] + '=' + (parseInt(z[1]) + 1)); 
 
    
 
    var win = window.open(str, '_blank'); 
 

 
    console.log(str); 
 
    
 
    if(win){ 
 
    //Browser has allowed it to be opened 
 
    win.focus(); 
 
    } else{ 
 
    //Broswer has blocked it 
 
    alert('Please allow popups for this site'); 
 
    } 
 
}
<button onclick='myFun()'>Click me</button>