Hi,
ich habe gerade ein Problem im ContentCreator das ich noch nicht ganz verstanden habe.
In einer WebApp für den ContentCreator nutze ich ExecutableToolbarActionsItem um ein Script anzuzeigen das eine externe Webseite in einem IFrame im CC anzeigt.
Die Methode die mir den JavaScript Code erzeugt:
protected String getIFrameDialogJavascript(String title, String url) {
return "var dialog = top.WE_API.Common.createDialog();"
+ "dialog.setTitle('"+title+"');"
+ "dialog.addButton('Close', function(){dialog.hide();});"
+ "dialog.setSize(1200, 600);"
+ "elem = document.createElement('iframe');"
+ "elem.setAttribute('src', '"+url+"');"
+ "elem.setAttribute('width', '100%');"
+ "elem.setAttribute('height', '100%');"
+ "elem.setAttribute('frameborder', 0);"
+ "dialog.setContent(elem);"
+ "dialog.show();";
}
Ich rufe nun den Code auf um ein Skript auszuführen:
ClientScriptOperation scriptOperation = _operationAgent.getOperation(ClientScriptOperation.TYPE);
LoggerUtils.logTrace("Executing script: " + script, ScriptExecutorTask.class);
scriptOperation.perform(script, false);
LoggerUtils.logTrace("Done executing script: " + script, ScriptExecutorTask.class);
Beim ersten Aufruf taucht nun eine Box auf in der meine gewünschte Seite dargestellt wird und im Log sehe ich alle erwarteten Ausgaben. So weit so gut. Klicke ich jetzt aber ein zweites Mal auf den Button im CC, dann wird wieder das "Executing script" log ausgegeben und danach nichts mehr. Es öffnet sich auch kein Fenster. Es sieht aus als würde der Aufruf einfach hängen bleiben.
der _operationAgent ist eine Variable die ich in meiner Klasse einmal im Konstruktor erzeuge, daran sollte es nicht liegen aber welche Gründe kann es geben, dass genau die gleiche Operation beim 2. Aufruf hängt?
Mal davon abgesehen, dass es nicht am JS Code hängen sollte kann ich diesen manuell nach wie vor z.B. über Firebug ausführen => das erwartete Ergebnis (Popup mit IFrame) taucht auf.
Hilfe?
MfG Marcus