2011-06-11 21 views
1

我在本網站上使用joomla。我有一個需要我到我的網頁上運行以下HTML的affilate程序:更改我的URL中的問號

VAR出價= ####; var site =#; document.write('');

頁腳

以下網址進行輸送,不工作(顯示電子郵件的形式) http://www.whatshappeningnow.info/index.php/index.php?option=com_content&view=article&id=764?evtid=1626579&event=ZZ+Top

注意 「?」之間 「= 764」 和 「evtid =」

如果我改變的URL:

http://www.whatshappeningnow.info/index.php/index.php?option=com_content&view=article&id=764&evtid=1626579&event=ZZ+Top

注: 「?」 我更換了與「&」

現在正確的結果確實顯示(CSS需要調整,但門票不顯示!

如何讓我的網址從那裏腳本,我不能改變寫得正確。

+1

要做的最好的事情是與聯盟計劃交談,並要求他們修復他們的錯誤。 – 2011-06-11 08:23:37

+0

你說的網址是「交付」。它如何交付? – squidbe 2011-06-11 08:25:58

+0

我創建了一個html頁面,其中包含一個用於窗口位置搜索子字符串的JavaScript,它們從我的html頁面上的數據庫中生成結果。您在上面看到的結果頁面包含搜索字符串,這是使頁面不顯示的原因。再次,如果我改變他們「?」到「&」這是他們的插件腳本文檔要求頁面正確顯示的內容。 – raymond 2011-06-11 08:31:59

回答

0

由於佩卡指出,最好的辦法是讓他們來修復這個bug,但在此期間,你可以做這樣的事情假設你能以某種方式訪問​​它們返回的字符串:

<script> 
var str = "http://www.whatshappeningnow.info/index.php/index.php?option=com_content&view=article&id=764?evtid=1626579&event=ZZ+Top"; 
var newStr = str.replace(/(\?)([^\?]*)(\?)/, "$1$2&"); 
</script> 

這隻如果你知道的話該字符串將始終有兩個問號,一個在正確的位置,另一個符號應該是。它使用正則表達式找到適當的字符串,並簡單地替換第二個「?」與&符號。

+0

我想知道如果我可以在joomla的htaccess中使用重寫規則來刪除第二個? – raymond 2011-06-11 09:52:51

+0

這聽起來像你說他們的URL是從一些JavaScript(客戶端)生成的,所以htaccess(服務器端)無法幫助你。 – squidbe 2011-06-11 10:10:23

1

正如一條評論所說,最好的辦法是聯繫聯盟計劃並讓他們解決這個問題。

作爲解決方法,您可以轉換由聯盟計劃腳本返回的URL。由於在URL中只有一個「?」是允許的,你可以將子網中的URL分割爲「?」,然後通過只將「?」在第一和第二子串之間。這樣的事情:

var newUrl = ""; 
var urlSubs = affiliateUrl.split("?"); 
if (urlSubs.length === 0) { 
    newUrl = affiliateUrl; 
    //-- no "?", do your processing here... 
} else { 
    newUrl = urlSubs[0] + "?"; 
    var i = 1; 
    for (i = 1; i < urlSubs.length; i++) { 
     newUrl = newUrl + "&" + urlSubs[i]; 
    } 
} 

注:我沒有考慮任何錯誤檢查!

這將適用於任何數量的「?」,並將只保留第一個。

+1

一個補充說明;我沒有定義,應該是===而不是==,並且總是使用括號(** {} **)。 – tbleckert 2011-06-11 09:19:11

+0

謝謝,我修改了代碼。 – sergio 2011-06-11 09:38:53

+0

謝謝我會在臨時嘗試......也許是一個很長的過渡期我在10天前概述了這個問題.........我會用這個代碼報告我的發現...... – raymond 2011-06-11 10:10:13