Главная > ExtGWT, javascript > Странности JavaScript’a

Странности JavaScript’a


Написал небольшой тестовый класс, который, по идее, должен вставить и выполнить некоторый JavaScript в страницу:

import com.extjs.gxt.ui.client.widget.LayoutContainer;
import com.google.gwt.dom.client.Document;
import com.google.gwt.dom.client.ScriptElement;

public class TestContainer extends LayoutContainer {

 @Override
 protected void afterRender() {
ScriptElement script = Document.get().createScriptElement("alert('1234');");
script.setLang("javascript");
script.setType("text/javascript");

el().dom.setInnerHTML(script.getString());

 }
}

И он действительно вставляется, как видно из куска страницы ниже:

...
<div id="x-auto-45">
 <script lang="javascript" type="text/javascript">
 alert('1234');
 </script>
 </div>
...

вот только не выполняется. И никакие ухищрения не могут заставить его выполняться. Или я не те заклинания произношу. Есть идеи?

Реклама
Метки: ,
  1. Сергей Елин
    30.12.2009 в 11:47

    Хм, оказывается есть разница что вставлять в innerHtml. Статику браузеры отработает, а вот JavaScript выполнять откажутся. Подробности тут.
    Заработало вот так:

    import com.extjs.gxt.ui.client.widget.LayoutContainer;
    import com.google.gwt.dom.client.Document;
    import com.google.gwt.dom.client.ScriptElement;
    
    public class TestContainer extends LayoutContainer {
    
    	@Override
    	protected void afterRender() {
    		ScriptElement script = Document.get().createScriptElement(
    				"alert('1234');");
    		script.setLang("javascript");
    		script.setType("text/javascript");
    		el().dom.appendChild(script);
    
    	}
    
    }
    
  1. No trackbacks yet.

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s