2013-11-21 14 views
0

我想使用jquery更改背景圖像。使用jquery更改背景圖像並且使用雙引號逃脫

用戶在輸入文本中輸入他的背景的url,當點擊一個按鈕時,背景圖像會發生變化,這很簡單。

這是我使用的代碼。

$(".change_bg").on("click",function(e){ 

    e.preventDefault(); 

    var bg = $(".bg_input").val(); 

    $("table").css("background-image", "url("+bg+")"); 

}); 

這段代碼很好用。

我的問題是當我打開螢火蟲,我看到這一點。

<table style="background-image: url("the_new_background-image");" > 

如何刪除URL中的雙引號並獲取此內容。

<table style="background-image: url(the_new_background-image);" > 

整個HTML代碼將被髮送到服務器,獲取下載,所以當我嘗試在瀏覽器中打開下載的HTML文件的背景圖片顯示不出來。

我嘗試給我們這個代碼並替換雙引號,但我沒有成功。

$("table").css("background-image", ("url('"+bg+"')").replace(/"/g,"")); 

請大家幫忙。

+0

我不明白你的問題來自哪裏。任何在線示例讓我們測試它? –

+1

我無法重現您的問題。在這裏工作得很好:http://jsfiddle.net/ThF5Z/ – nbar

+0

只是一件事,如果我正確地理解你的問題,你應該設置背景圖像的網址爲絕對,如果不直接從服務器使用 –

回答

0

試試這個:

$("table").css("background-image", "url(" + escape(bg) + ")"); 

甚至更​​好,在做任何事情之前

var bg = escape($(".bg_input").val()); 

逃生!

+0

謝謝@russellc,但這不行! –

0

其實,你的代碼應該可以正常工作。 url()參數不需要引號,url(urltofile)和url(「urltofile」)一樣好。

See a working fiddle

$(".change_bg").on("click",function(e){ 

    e.preventDefault(); 

    var bg = $(".bg_input").val().replace("\"", ""); 

    $("table").css("background-image", "url("+bg+")"); 

}); 
+0

我已經試過這個,但它不起作用,謝謝@亞歷 –

+0

但那不工作?正如你可以在小提琴中看到它應該 – Alex

0

沒有與你的代碼沒有問題,因爲你可以在這裏看到:jsfiddle.net/ThF5Z

$("#me").on("click",function(e){ 
console.log("click"); 
    e.preventDefault(); 

    var bg = $("input").val(); 

    $("#me").css("background-image", "url("+bg+")"); 

}); 

的報價來自於螢火蟲/ Firefox瀏覽器。在Chrome中測試相同的代碼,並且沒有引號。沒有什麼可以解決的。

+0

你是totaly權利,鉻中沒有引號,任何想法爲什麼firfox在圖像url周圍插入引號? –