如何在Chrome中的<img/>标记中显示SVG内容

时间:2016-03-10 06:36:15

标签: jquery image jsf svg

我正在使用JSF应用程序,我使用jQuery设计了一个内部方案编辑器。在页面加载时,我需要从数据库中调用XML内容,然后将给定的XML内容转换为SVG格式并将其显示在-keep class org.apache.http.** { *; } -dontwarn org.apache.http.** -dontwarn android.net.** 标记中。我尝试将其转换为JPEG格式时能够做同样的事情,但是当我转换为svg SVGmat时,数据被提取但它没有显示在img标签中。我将Google Chrome用于我的应用程序。代码段如下所示。

img

XHTML:

function initImportImages() {
    createImage("image/svg", applySvg);
} 

//Export the image 
function createImage(imageType, callback) {
    var exporter = createExporter(imageType);
    var value = $("#moleculeTxt").val();
    exporter.render($("#moleculeTxt").val()).then(callback, alert);
}

function applySvg(svg) {
    alert(svg);
    $("#imageContainer").html(svg);
    $("#image").html(svg);
    $("#imageContainer").css("display", "inline-block");
}

//default functions of marvin to render the DB value back to image      
function createExporter(imageType) {
    var inputFormat ="mrv";
    if(inputFormat == "") {
        inputFormat = null;
    }
    var defaultServices = getDefaultServices();
    var services = {};
    services['molconvertws'] = defaultServices['molconvertws'];
    var settings = marvinSketcherInstance.getDisplaySettings();
    settings = {
        'width' : parseInt($("#image").val(), 600),
        'height' : parseInt($("#image").val(), 600) 
        /* 'width' : parseInt($("#image").val(), 600),
        'height' : parseInt($("#image").val(), 600) */
    };
    var params = {
        'imageType': imageType,
        'inputFormat': inputFormat,// type of output image
        'services': services, // to resolve any molecule format and be able to calculate stereo info
        'settings': settings
    }

    try {
        return new marvin.ImageExporter(params);
    } catch(err) {
        alert(err);
    }
}

0 个答案:

没有答案