سؤال

أريد أن تشغيل بروتوفيس JavaScript من Java والحصول على رمز SVG تقييم. أنا أستخدم javax.script.* لتشغيل JavaScript:

public static void EvalScript() throws Exception {
    ScriptEngineManager factory = new ScriptEngineManager();
    ScriptEngine engine = factory.getEngineByName("JavaScript");
    Object result = engine.eval("var vis = new pv.Panel().width(300).height(300)
        .add (pv.Line).data ([1,0.5, 0.1, 0.01, 0.001, 0.3, 0.2,0.1,1])
           .left (function () { return this.index * 30; })
           .bottom (function (d) { return d * 250; });
        vis.root.render();
        vis.scene[0].canvas.innerHTML;");         
    System.out.println(result);
}

هذا من شأنه أن يشكو لأنني لم أقم بتحميل بروتوفيس نفسه ، كما هو الحال عادة

<script type="text/javascript" src="../protovis-r3.1.0.js"></script> 

هل هناك طريقة جيدة ، أقل من المصادر في JavaScript الكاملة في أمر eval () ، لتحميل مكتبة عند تشغيل JavaScript من خلال javax.script؟

هل كانت مفيدة؟

المحلول

حسنًا ، لماذا لا تقوم بتحميل البرنامج النصي بالكامل وتسليمه إليه eval()؟ إذا كنت تريد سياق تنفيذ JavaScript لتحليل المكتبة وتفسيرها ، ثم شيئا ما يجب أن تفعل ذلك. يمكنك بالطبع توفير آلية لسياق البرنامج النصي للسماح للنص نفسه بالقيام بما يعادل <script> مثال على العلامة التي قدمتها ، لكنها ستنتهي في النهاية بنفس الشيء.

أنا لا أفهم تعليقك حول وحيد القرن. مترجم JavaScript في JDK 1.6 هو وحيد القرن.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top