HTML dosyamda bir dize değeri döndüren javascript işlevi xxx_return() var. Bu değeri Java katmanından alabilmemin herhangi bir yolu var mı?Bir Javascript işleviyle nasıl konuşulur SWT
Bu html'yi görüntülemek için SWT kabuk kullanıyorum. SWT bir betik fonksiyonunun dönüş değerlerini almak için herhangi bir özelliği taşıyor mu?
düzenleme:
Kodum aşağıda gibi bir şey: paketin test.html.simulation;
import org.eclipse.swt.SWT;
import org.eclipse.swt.SWTException;
import org.eclipse.swt.browser.Browser;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
public class BrowserExample{
public static void main(String[] args)
{
Display display = new Display();
final Shell shell = new Shell(display);
String html="";
Object ob=null;
shell.setText("Browser Example");
shell.setSize(500, 350);
final Browser browser = new Browser(shell, SWT.NONE);
browser.setBounds(5, 75, 600, 400);
browser.setUrl("http://localhost/test/tryxml.html");
shell.open();
//System.out.println(browser.getUrl());
//try
{
html=(String)browser.evaluate("returnHTML();");
}/*catch(SWTException e)
{
System.out.println(e.getMessage());
}*/
System.out.println(html);
while (!shell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
display.dispose();
}
Bu kod bana bir SWT beklenen Nesne gibi İstisna verir:
<script>
function returnHTML()
{
var str=document.body.innerHTML;
//alert(str);
return str;
}
</script>
kimse bulabilir i gibi komut etiketinde bir fonksiyonu yazdım java komut dosyasında
Exception in thread "main" org.eclipse.swt.SWTException: Object expected
at org.eclipse.swt.browser.WebBrowser$EvaluateFunction.function(Unknown Source)
at org.eclipse.swt.browser.WebSite.Invoke(Unknown Source)
at org.eclipse.swt.browser.WebSite$7.method6(Unknown Source)
at org.eclipse.swt.internal.ole.win32.COMObject.callback6(Unknown Source)
at org.eclipse.swt.internal.ole.win32.COM.VtblCall(Native Method)
at org.eclipse.swt.internal.ole.win32.IDispatch.Invoke(Unknown Source)
at org.eclipse.swt.ole.win32.OleAutomation.invoke(Unknown Source)
at org.eclipse.swt.ole.win32.OleAutomation.invoke(Unknown Source)
at org.eclipse.swt.browser.IE.execute(Unknown Source)
at org.eclipse.swt.browser.WebBrowser.evaluate(Unknown Source)
at org.eclipse.swt.browser.Browser.evaluate(Unknown Source)
at test.html.simulation.BrowserExample.main(BrowserExample.java:29)
Bu hatadır? Hatanın nerede olduğunu anlayamıyorum.
Teşekkürler.
Sorumu düzenledim. Dediğim gibi yaptım, ama bana bir istisna veriyor. Hata buluyor musunuz? Teşekkürler – Kris
'Browser # assessment' ile ilgili bir hata var ve IE9 ile null dönüş değerleri: https://bugs.eclipse.org/bugs/show_bug.cgi?id=344597. Bu konuda çalışmak için, 'Browser.evaluate ('foo() ||' ';')' işlemini yapabilirsiniz. Bunu, sabit bir dizge döndüren bir Javascript işlevine basitleştirebilir misiniz? Bu başarılı mı? –
Browser.evaluate ("return foo()") olarak değerlendirerek String'i javascript'ten alabilirim; – Kris