javascript - 以编程方式使用 dojo 显示图像

标签 javascript ajax dojo

我正在尝试以编程方式使用 dojo 显示图像。我试过“dijit/Dialog”和“dojox/image/Lightbox”。 当我使用对话框时,图像对话框显示一些字符而不是图像。 当我使用灯箱时,图像总是显示第二次。

imageDialog = new Dialog({
  title:  "my image",
  preload: false,
  href: "/ajax/fileStreamer"
});
imageDialog.show();

上面的代码只显示了一些字符。如果我给出图像的相对路径,结果是相同的。

对于 Lightbox,如果它是相对路径,则显示图像。但是对于图像流,它会在第二次点击时显示。

最佳答案

Lightbox 假定文件是图像,因此在内部添加 <img />标记到 href 属性,而 Dialog 没有,因此需要使用内容属性,包括手动 <img />标签代替。根据您希望实现的目标,您有多种选择(增加复杂性/花哨性):

使用 ContentPane:

        require(['dijit/layout/ContentPane'], function (ContentPane) {
            var theImage = new ContentPane({content: '<img  src="yourimageurl"/>'}, 'theImage');
            theImage.startup();
        });

使用对话框(扩展 ContentPane):

        require(['dijit/Dialog'], function (Dialog) {
            var theImage = new Dialog({title: 'the image', content: '<img  src="yourimageurl"/>'});
            theImage.startup();
            theImage.show();
        });

使用 Lightbox(需要 Lightbox css,在内部使用扩展 Dialog 的 LightboxDialog):

        require(['dojox/image/Lightbox'], function (Lightbox) {
            var theImage = new Lightbox({title: 'the image', href: 'yourimageurl'});
            theImage.startup();
            theImage.show();
        });

使用 LightboxDialog(同上 Lightbox,公开 LightboxDialog 实例):

        require(['dojox/image/Lightbox'], function (Lightbox) {
            var theDialog = new dojox.image.LightboxDialog({});
            theDialog.startup();
            theDialog.show({title: 'the image', href: 'yourimageurl'});
        });

关于javascript - 以编程方式使用 dojo 显示图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46074569/

相关文章:

php - 如何从ajax中检索数据?

javascript - 拒绝访问 IE 上的 jQuery 脚本

php - 在 PHP 中使用 Jquery Ajax

javascript - create_row() 函数的问题

javascript - 尝试避免在 Domino XPage 中多次调用 jQuery

javascript - 我可以将 Javascript 对象传递给 Android WebView 吗?

javascript - 通过 webapp2 重定向时 Google Cloud Endpoints 未加载

javascript - 如何修复失败的 NextJS 导出 - 在本地工作正常,但导出时失败,令人沮丧 :(

javascript - 使用 Javascript 正则表达式从字符串末尾删除 int 和 float

javascript - 在 dojo.gridX 中添加新行时如何聚焦第二个单元格