繁体   English   中英

Vaadin 7中的JavaScript在InternetExplorer 11上不起作用

[英]JavaScript in Vaadin 7 doesn't work on InternetExplorer 11

我在Vaadin 7中有一个Web应用程序,我使用JavaScript,它可以在Google Chrome上运行,但不能在IE 11上运行。这是我使用JavaScript的方式(如果可能的话,我不想在Java上使用它)

com.vaadin.ui.JavaScript.getCurrent().addFunction("left", new JavaScriptFunction(){
        private static final long serialVersionUID = 1L;
        @Override
        public void call(JsonArray arguments) {

            zinkonaux.executeJs(""
                        + "var box = document.querySelector('.divobjetos');"
                        + "var pos = window.getComputedStyle(box,null).getPropertyValue('left');"
                        + "pos = parseInt(pos);"
                        + "pos = pos + 300;"
                        + "box.style.left = pos+'px';"
                    );

        }
    });

我的问题是:在IE中,javascript函数无法正常工作,我想单击上一个div,另一个滚动中的一个,如轮播效果,但是在IE中,单击时不起作用,并且在开发窗口中没有错误

我建议将您的Javascript移到单独的文件中。 如果希望在整个应用程序中使用JS方法,则可以在UI类上使用@JavaScript批注。

package com.company

@JavaScript("test.js")
public class MyUI extends UI 
{
...

然后,您需要将test.js放入/com/company/test.js文件夹中的resources文件夹中(如果您使用的是maven)。

function left()
{
    var box = document.querySelector('.divobjetos');"
    var pos = window.getComputedStyle(box,null).getPropertyValue('left');"
    pos = parseInt(pos);"
    pos = pos + 300;"
    box.style.left = pos+'px';
}

我无法解决IE中的JavaScript错误,特别是要更改左容器和右容器之间的内部div的位置,请在每个容器中使用一个在其ClickListener中使用以下方式修改样式的按钮:

样式样式= Page.getCurrent()。getStyles();
styles.add(“。divscroll .divobjects {左:” + positionInfoTags +“ px!important}”);

我的html代码是这样的:

<div class="container">
     <div class="left" location="moveLeft"></div>
     <div class="right" location="moveRight"></div>
     <div class="divscroll">
        <div class="divobjects" location="infoTags">
        </div>
     </div>
</div>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM