2010-03-19 63 views
0

我有一個js文件JS文件我有以下變量設置變量和值在HTML和JS

var image_path="images"; 
var style_path="style"; 

我想使用的HTML文件(S)

像圖像這些變量聲明

 <img src="path from js/logo.gif"> 

或樣式表聲明

 <link rel="stylesheet" href="path from js/constant.css" type="text/css" /> 

這個基本思想是:如果我們改變圖像文件夾的名稱或圖像文件夾的路徑,我們只做一個JS文件而不是1000個HTML文件。

樣式表相同。

或任何其他方式做Java腳本或jQuery的相同

感謝

回答

0

可以使用document.write(或jQuery的)來創建標籤:

document.write('<img src="' + image_path + '/logo.gif">'); 

注意,變量必須是在通話之前設置。

但是,最好在服務器端代碼中執行此操作。

0

你無法做到這一點。你必須用JavaScript動態生成所有內容 - 這會將它從搜索引擎和任何沒有JS的人隱藏起來。

你最好使用某種模板引擎。

Template-Toolkit可以從服務器端腳本驅動,或用於生成靜態頁面上傳(例如使用ttree)。

然後你可以做這樣的事情:

[% 
    image_path = "images"; 
    style_path = "style"; 
%] 

然後:

[% INCLUDE "common.tt"; %] 
<link rel="stylesheet" href="[% style_path %]/constant.css" type="text/css" /> 

他們有a tutorial for web page authoring in TT

2

您是否考慮過使用<base>標記?爲什麼不能問我:)

2

我對此偏向jQuery。我同意服務器端可能更好的人羣,但如果你需要在客戶端上做,你可以做以下事情。

添加一個類到應該被影響的img元素(或跳過我的例子的這個方面,如果它應該適用於所有...我只是想用jQuery來證明你可以使它有條件並使用類選擇器來這樣做)。

例如:<img class="relative_url" src="logo.gif" /> 或:<img class="img_style relative_url" src="logo.gif" />(如果圖像上已經有一類)

然後,你可以使用像它在頁面加載(通過$(document).ready())獲得該類別相匹配的所有IMG元素下面的函數名稱並在它們前面迭代根路徑。

請原諒我的語法並以此爲僞代碼...我已經有一段時間沒有

$(document).ready(function(){ 
    fixRelativeUrls(); 
}); 

function fixRelativeUrls() 
{ 
    $("img.relative_url").each(function(index) { 
     $(this).src = image_path + "/" + $(this).src; 
    }); 
} 
+0

我想說的是這樣的jQuery的路線進行的網絡/使用Javascript/jQuery的東西。問題是,要添加該類,他必須編輯他想避免的每個HTML頁面。你可以擴大選擇器,只需做$(「img」)或$(「link」)。 – Gromer 2010-03-19 21:29:48