Jquery .html,Firefox在属性中编码引号

时间:2011-04-28 11:10:33

标签: javascript jquery

我有一个生成HTML幻灯片的修补程序应用。这些模块是在Jquery中构建的,其背景为内联CSS(我可以提出最好的解决方案,因为它们对于每个实例都是唯一的)。

问题是firefox将style属性中的引号转换为:

<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

他们只能通过以下方式获得背景属性:

// 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不断更改/添加“。任何想法?

1 个答案:

答案 0 :(得分:0)

据我所知,&quot;",因此您在其"之间的内容中"。我认为这永远不会像这样工作。

如果您将原始代码(在firefox中无效的代码)更改为有效代码(使用转义或'"的组合而不是“嵌套” "),你不接近解决方案吗?