javascript
  • jquery
  • html
  • url
  • relative-path
  • 2013-08-22 27 views 1 likes 
    1

    例如,我提供了一個相對的社會共享插件如何設置「a href」的相對路徑?

    ../../test.html 
    

    爲紐帶

    它顯示爲

    http://../../test.html 
    

    有什麼辦法將路徑轉換爲絕對,如果它在路徑前需要一個「http://」?由於

    編輯:

    我把路徑

    $('#sina').attr('href', "javascript:void((function(s,d,e,r,l,p,t,z,c){var%20f='http://v.t.sina.com.cn/share/share.php?appkey=',u=z||d.location,p=['&url=',e(u),'&title=',e(t||d.title),'&source=',e(r),'&sourceUrl=',e(l),'&content=',c||'gb2312','&pic=',e(p||'')].join('');function%20a(){if(!window.open([f,p].join(''),'mb',['toolbar=0,status=0,resizable=1,width=440,height=430,left=',(s.width-440)/2,',top=',(s.height-430)/2].join('')))u.href=[f,p].join('');};if(/Firefox/.test(navigator.userAgent))setTimeout(a,0);else%20a();})(screen,document,encodeURIComponent,'','','" + imgStr + "','" + shareDes + "','','utf-8'));"); 
    
    的地方

    我不知道如何路徑的作品,但它的工作原理,如果我有絕對路徑提供

    #sina是同時<a href></a>元素imgStr是鏈接提供

    我運行網站後檢查源代碼,如果是相對路徑,它顯示爲"http://../../test.html"

    +2

    恐怕你的問題很不清楚。你提供相對路徑*其中*?這個標記/代碼是什麼樣的? *「顯示爲...」*在哪裏?你在看什麼? –

    +0

    什麼是服務器端平臺? – gdoron

    +0

    感謝您的回覆,抱歉不清楚,讓我編輯它 – user1871516

    回答

    2

    嘗試

    location.hostname+location.pathname+your_relative_path 
    

    這會給你的路徑的組合來您的當前頁面(減去實際文件名,如果有一個在URL)與您的相對地址在your_relative_path

    所以,像http://www.mypage.com/contents/level1/en-us/page2/../../test.html這樣的結果將是最終的結果。

    +0

    也檢查(並在沒有添加)/之前你的親戚? :D +1如果你可以確認瀏覽器的兼容性^^ –

    +0

    它似乎我應該使用location.pathname來代替../../ – user1871516

    +0

    'location.pathname'會給出當前頁面的路徑名(從你的頁面執行你的JavaScript)。 test.html的路徑是從那裏開始的兩個級別。 @JaakKütt:斜槓的有效點,但是因爲在這個例子中,OP想要向上移動兩個級別,所以我們可以確定在location.pathname末尾有一個斜槓 - 至少在這種情況下是 - ) – cars10m

    相關問題