سؤال

أحاول إنشاء ملف Excel وحفظه في نظام الملفات المحلي باستخدام تطبيق Java الصغير.بعد التوقيع على التطبيق، يمكنني إنشاء الملف بنجاح عن طريق استدعاء التطبيق الصغير مباشرةً.ومع ذلك، عندما أحاول استدعاء الطريقة من جافا سكريبت، فشلت دون أي رسالة خطأ.أتساءل عما إذا كان هناك أي تحكم في السياسة لمنع استدعاء طريقة جافا من جافا سكريبت؟

 <html>
<script language="JavaScript">
function createExcel()
{
    document.excel.createExcel();

    document.excel.setMessage("hello world from js");
}
</script>
<body>
<input type="button" value="Generate Excel" onclick="createExcel()" />
<applet id='applet' name='excel' archive='Office.jar,poi-3.7-20101029.jar' code='com.broadridge.Office.class' width='100' height='100'></applet>
</body>
</html>
هل كانت مفيدة؟

المحلول

يجب أن يتم تغليف الأساليب الموجودة في التطبيق الصغير الموثوق به والتي يتم استدعاؤها باستخدام JavaScript في ملف PrivilegedAction ودعا باستخدام واحدة من AccessController.doPrivileged(..) المتغيرات.

الوصول إلى نظام الملفات Sandboxed

يوفر Plug-In 2 JREs (Oracle's 1.6.0_10+ JRE على سبيل المثال) إمكانية الوصول إلى نظام تحديد الوصول إلى نظام الملفات المحلي باستخدام واجهة برمجة تطبيقات JNLP خدمات الملفات (على وجه التحديد FileSaveService).انظر عرض خدمة الملفات. على سبيل المثال.

عنصر التطبيق الصغير

يجب أن يعلن التطبيق الصغير الذي يتم استدعاؤه بواسطة JS أنه كذلك scriptable في HTML.أما بالنسبة للحصول على "HTML"، فإن أفضل طريقة لكتابته هي استخدام Oracle نشر Java.js.لن يقوم فقط بكتابة عنصر التطبيق الصغير بأفضل طريقة معروفة حاليًا لكل متصفح، ولكن هل يتم التحقق من وجود JRE (هل تم تثبيت Java؟) والحد الأدنى للإصدار (هل JRE هو الحد الأدنى من الإصدار المطلوب لتشغيل هذا التطبيق الصغير؟).

نصائح أخرى

قد يكون هناك العديد من المشكلات هنا.

1) يجب عليك استخدام طريقة نشر JavaScript للتطبيق الصغير (انظر الرابط).

2) إذا لم تكن الطريقة التي تحاول استدعاؤها موجودة في applet-child نفسه ، فعليك أولاً الحصول على مثيل للفئة المعنية ثم استدعاء أسلوبها ، على سبيل المثال(لفصل الآلة الحاسبة):

Genacodicetagpre

مور معلومات

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