java - 自定义 Javascript 组件 : Using @StyleSheet produces script error in IE8

标签 java javascript css vaadin vaadin7

我在 vaadin 中创建了一个自定义 javascript 组件。我使用 @StyleSheet 注释添加了几个外部样式表。该组件工作正常,但在 IE8 中它显示脚本错误。脚本错误的数量等于使用注释包含的外部 CSS 的数量。

错误是:对象不支持此操作。

enter image description here

我该如何解决?

用户界面类:

package com.example.example;

import javax.servlet.annotation.WebServlet;

import com.vaadin.annotations.Theme;
import com.vaadin.annotations.VaadinServletConfiguration;
import com.vaadin.server.VaadinRequest;
import com.vaadin.server.VaadinServlet;
import com.vaadin.ui.UI;
import com.vaadin.ui.VerticalLayout;

@SuppressWarnings("serial")
@Theme("example")
public class ExampleUI extends UI {

    @WebServlet(value = "/*", asyncSupported = true)
    @VaadinServletConfiguration(productionMode = false, ui = ExampleUI.class)
    public static class Servlet extends VaadinServlet {
    }

    @Override
    protected void init(VaadinRequest request) {
        final VerticalLayout layout = new VerticalLayout();
        layout.setMargin(true);
        setContent(layout);
        MyComp mycomponent = new MyComp();      
        layout.addComponent(mycomponent);
    }

}

组件

服务器部分:MyComp.java

package com.example.example;

import com.vaadin.annotations.JavaScript;
import com.vaadin.annotations.StyleSheet;
import com.vaadin.ui.AbstractJavaScriptComponent;


@JavaScript({"component.js","component-connector.js"})
@StyleSheet({"Stylesheet1.css"})
public class MyComp  extends AbstractJavaScriptComponent {

    private static final long serialVersionUID = 1L;

     @Override
     protected MyCompState getState() {
         return (MyCompState) super.getState();
     }
}

客户端部分:component.js

var mylibrary = mylibrary || {};

mylibrary.Comp = function(element) {
    element.innerHTML = "<div>hello</div>";
};

连接器:component-connector.js

window.com_example_example_MyComp =
function() {
    var mycomponent = new mylibrary.Comp(this.getElement());

    this.onStateChange = function(e) {};

};

状态:MyCompState.java

package com.example.example;

import com.vaadin.shared.ui.JavaScriptComponentState;

public class MyCompState extends JavaScriptComponentState{

    private static final long serialVersionUID = 1L;

}

样式表

样式表1.css

div {
}

最佳答案

您可以尝试更改您的 JavaScript 变量名称。

关于java - 自定义 Javascript 组件 : Using @StyleSheet produces script error in IE8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22093854/

相关文章:

javascript - 根据浏览器大小预先添加和追加内容

javascript - 如何从其他两个函数获取 "if true"结果并在第三个函数中使用它?

javascript - 在 ASP.net MVC 5 应用程序中单击按钮时使用 JavaScript/jQuery 将用户重定向到页面

html - 网格布局 Internet Explorer 无法按预期工作

jquery - 指定为像素值的行高失败

java - Spring MVC默认Locale和Locale改变不起作用

java - com.example.RedisApplication 中方法存储库的参数 0 需要找不到类型的 bean

html - 如何禁用 Zend 表单中的表单元素?

java - 在本地文件系统(Java 中)上持久化 ACID 事务的简单方法是什么?

java - 使用 RecyclerView 添加到 GridLayout 的动态按钮相互叠加