JavaScript 在 Vaadin 7 中不适用于 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中点击时没有效果,在开发中window没有错误

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

package com.company

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

然后你需要将 test.js 放入文件夹 /com/company/test.js 中的资源文件夹(如果你使用的是 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中修改的按钮样式:

样式 styles = Page.getCurrent().getStyles();
styles.add(".divscroll .divobjects { left: "+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>