2010-02-12 24 views
5

Web sayfalarında Flash tabanlı grafikleri gömmek için harika olan AnyChart adlı bir yazılım ürünü var. AnyCharts ayrıca PNG dosya formatına da aktarılabilir. İşte bir örnek:Indy, Javascript'i çalıştırabilir mi?

<script type="text/javascript" language="javascript"> 
    //<![CDATA[ 
    var chart = new AnyChart('http://www.mysite.com/swf/AnyChart.swf'); 
    chart.width = 600; 
    chart.height = 300; 
    chart.setXMLFile('http://www.mysite.com/anychart.xml'); 
    chart.addEventListener("draw", function() { saveChartAsImage(chart); }); 
    chart.write("content-box"); 
    //]]> 
</script> 

Hayalim PNG biçimine AnyChart grafikleri dışarı bir otomatik servisi yapmaktır. Bu yüzden AnyShart javascript içeren sayfaları çağıran Indy ile bir hizmet yaptım. Ancak sorun, Indy'nin javascript'i yürütemeyeceği gibi görünüyor.

Indy'nin javascript'i çalıştırmasını sağlamanın bir yolu var mı?

cevap

7

Hayır, Indy Javascript yürütmez. Ayrıca, HTML'yi ayrıştırmadığını veya görüntülemediğini de fark etmiş olabilirsiniz ve Flash'ı da çalıştırmaz. Indy ağ protokolleri yapıyor.

Microsoft Script Control ActiveX nesnesini içe aktarabilir ve adresinden Javascript'inizi çalıştırabilirsiniz. Bununla ilgili detaylara ihtiyacınız varsa, yeni bir soru gönderin.

3

Bunun için Indy'yi kullanmak zorunda değilsiniz. İsterseniz TWebBrowser'ı kullanabilirsiniz. IHTMLWindow2 arabirimi, execScript işlevine sahiptir. Öyleyse olabilirsiniz:

var 
    Doc : IHTMLDocument2; 
    Win : IHTMLWindow2; 
    aBrowser : TWebBrowser; 
//... 
begin 
    //... 
    Doc := aBrowser.Document as IHTMLDocument2; 
    Win := Doc.parentWindow; 
    Win.execScript('alert(SomeMessage);', 'JavaScript'); 
end; 
+0

Teşekkür ederiz. IHTMLWindow2 arayüzünü avlamak zorundayım. –

1

Vcl FOR THE web'i (aka Intraweb atozed) denediniz mi? Oldukça kullanışlı bir teechart sürümü vardır, ayrıca web uygulamanızın TiwForms'larından herhangi birinde "harici" javascript kodunu da çalıştırabilirsiniz (şimdi kullandığınız kodun aynısı).

Gerekirse yeni bir soru gönderin ve size yardımcı olmaktan memnuniyet duyarız.

İlgili konular