2011-04-28 60 views
0

我有一個生成HTML幻燈片的修補程序應用程序。這些模塊在Jquery中構建,背景爲內聯CSS(我可以提出最好的解決方案,因爲它們每個實例都是唯一的)。Jquery .html,Firefox在屬性中編碼qoutes

的問題是,火狐在樣式屬性的報價轉換爲:

<div style="background-image: url(&quot;bigspace-template.jpg&quot;);" 
class="nuiOpenspace t1 skin1"> 

的WebKit瀏覽器有這個沒有問題。

演示: http://www.greenpeace.cc/p3/nui/

腳本: http://greenpeace.cc/p3/nui/js/nui.builder.js

他們唯一的辦法我已經能夠得到background屬性是:

// Build function, shortened 
openspace.build = function(){ 
// ... 
var bgstr = 'background-image: url('+ this.val_image + ')'; 
$o = $('<div class="nuiOpenspace"></div>').attr('style', bgstr); 
// ... 
} 

這則輸出追加到文件:

function Sandbox(){ 
    var $sandbox = $("#sandbox"); 

    this.fill = function(o) { 
     $sandbox.empty(); 
     $sandbox.append(o); 
    }; 
    // ...  
} 

我再從DOM獲得HTML,轉換成字符串,然後輸出它在一個textarea:

function Source(){ 

    this.print = function(o, c_val){ 

     //var parsed_html = this.parse(o, c_val); 
     //var pretty_html = "";   
     //pretty_html = style_html(parsed_html); 

     //console.info(x.replaceAll('&qout;', 'x'));    

     $code.text(style_html($("#sandbox").html())); 
    }; 
} 

var source = new Source(); 

從來就試圖查找和替換,但Firefox的不斷變化來/加"。有任何想法嗎?

+0

您是否嘗試過使用單個qoutes? '「'。或者,你可以把它放在一個臨時元素中,並得到'.text()' – mattsven 2011-04-28 11:14:24

回答

0

據我所知,&quot;",所以你必須"內在的東西,是在自己的"之間。這絕不會像我想的那樣工作。

,如果您已經改變了原始代碼(一個沒有工作在Firefox),以有效的代碼(使用轉義或'組合和"而不是「嵌套」 "),你會不會更接近解決方案?

+0

我試過單引號,轉義引號等等。同樣的問題。 – max 2011-04-30 22:48:13