Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions html/arabic/java/advanced-usage/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -136,6 +136,13 @@ weight: 20
### [كيفية تشغيل JavaScript في Java – دليل كامل](./how-to-run-javascript-in-java-complete-guide/)
تعلم كيفية تشغيل كود JavaScript داخل تطبيقات Java باستخدام Aspose.HTML for Java.

### [ضبط نسبة بكسل الجهاز في Java – دليل محاكاة الجوال](./set-device-pixel-ratio-in-java-mobile-simulation-guide/)
تعلم كيفية ضبط نسبة بكسل الجهاز لمحاكاة شاشات الهواتف المحمولة في Java باستخدام Aspose.HTML.

### [كيفية تمكين JavaScript في Java HTMLDocument – دليل خطوة بخطوة](./how-to-enable-javascript-in-java-htmldocument-step-by-step-g/)

### [دروس Java المتعددة الخيوط: تشغيل المهام بالتوازي باستخدام مجموعة خيوط ثابتة](./java-multithreading-tutorial-run-tasks-parallel-with-fixed-t/)

---

**آخر تحديث:** 2025-11-29
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,247 @@
---
category: general
date: 2026-04-05
description: كيفية تمكين JavaScript أثناء تحميل ملف HTML في Java باستخدام Aspose.HTML
– تعلم كيفية تحميل HTML مع JavaScript، تنفيذ السكريبتات، واسترجاع نتائج السكريبت.
draft: false
keywords:
- how to enable javascript
- load html with javascript
- how to execute javascript
- retrieve script result
- run page script java
language: ar
og_description: كيفية تمكين JavaScript أثناء تحميل HTML في Java. يوضح هذا الدرس كيفية
تحميل HTML مع JavaScript، تنفيذ سكريبت الصفحة في Java، واسترجاع نتيجة السكريبت.
og_title: كيفية تمكين JavaScript في Java HTMLDocument – دليل كامل
tags:
- Aspose.HTML
- Java
- JavaScript
- HTML processing
title: كيفية تمكين JavaScript في Java HTMLDocument – دليل خطوة بخطوة
url: /ar/java/advanced-usage/how-to-enable-javascript-in-java-htmldocument-step-by-step-g/
---

{{< blocks/products/pf/main-wrap-class >}}
{{< blocks/products/pf/main-container >}}
{{< blocks/products/pf/tutorial-page-section >}}

# كيفية تمكين JavaScript في Java HTMLDocument – دليل شامل

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

في هذا الدرس سنستعرض تحميل HTML مع دعم JavaScript، تنفيذ سكريبت موجود على الصفحة، وأخيرًا استرجاع نتيجة السكريبت إلى كود Java الخاص بك. سنتطرق أيضًا إلى **load html with javascript**، **how to execute javascript**، وفروق **run page script java**. في النهاية ستحصل على مثال مكتمل يمكن إدراجه في أي مشروع Maven.

---

## ما ستحتاجه

- **Java 17** (أو أي JDK حديث؛ الـ API متوافق مع الإصدارات السابقة)
- **Aspose.HTML for Java** 23.10 أو أحدث – أضف تبعية Maven الموضحة أدناه
- ملف HTML يحتوي على سكريبت صغير يعيّن `window.result` (سننشئه)
- بيئة تطوير مفضلة (IntelliJ، Eclipse، VS Code…) – أي شيء يمكنه تجميع Java

لا متصفحات خارجية، لا Selenium، فقط Java صافية وAspose.HTML.

![how to enable JavaScript in Java HTMLDocument](placeholder.png)

*نص بديل: كيفية تمكين JavaScript في Java HTMLDocument*

---

## الخطوة 1 – إضافة Aspose.HTML إلى مشروعك

أولاً وقبل كل شيء. إذا لم تقم بذلك بعد، اسحب مكتبة Aspose.HTML إلى ملف `pom.xml` الخاص بـ Maven:

```xml
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-html</artifactId>
<version>23.10</version>
</dependency>
```

> **نصيحة احترافية:** نسخة التقييم المجانية تعمل بدون مفتاح ترخيص، لكنك ستلاحظ علامة مائية في الناتج المرسوم. للإنتاج، سجّل ترخيصًا كما هو موضح في الوثائق الرسمية.

---

## الخطوة 2 – كيفية تمكين JavaScript عند تحميل المستند

المفتاح **الأساسي** يكمن في `DocumentLoadOptions`. بشكل افتراضي يقوم Aspose.HTML بتعطيل JavaScript للسلامة، لذا عليك تفعيله صراحةً:

```java
// Step 2: Enable JavaScript execution while loading the document
DocumentLoadOptions loadOptions = new DocumentLoadOptions();
loadOptions.setEnableJavaScript(true);
```

لماذا هذا مهم: عندما يواجه محلل HTML وسم `<script>`، سيُشغل محرك JavaScript مدمج (V8 تحت الغطاء) ويسمح للشفرة بالتنفيذ. بدون هذا العلم يتم تجاهل السكريبت، وأي متغيرات تحاول قراءتها لاحقًا لن تكون موجودة.

---

## الخطوة 3 – تحميل HTML مع دعم JavaScript

الآن نقوم بتحميل الصفحة فعليًا. لاحظ أننا نمرر `loadOptions` التي قمنا بإعدادها للتو:

```java
// Step 3: Load the interactive HTML file with the configured options
try (HTMLDocument htmlDoc = new HTMLDocument(
"YOUR_DIRECTORY/interactive.html", loadOptions)) {
// The document is now ready for script interaction
}
```

إذا كنت تتساءل ما إذا كان مسار الملف يحتاج إلى أن يكون مطلقًا، الجواب **لا** – المسار النسبي يعمل طالما يمكن حله من دليل العمل. أيضًا، كتلة `try‑with‑resources` تضمن التخلص من المستند بشكل صحيح، مما يمنع تسرب الذاكرة.

---

## الخطوة 4 – كيفية تنفيذ JavaScript واسترجاع نتيجة السكريبت

مع تحميل الصفحة، يمكنك استدعاء أي تعبير JavaScript عبر طريقة `Window.eval`. في مثالنا يعيّن سكريبت الصفحة `window.result = "42"`؛ سنقرأ تلك القيمة مرة أخرى:

```java
// Step 4: Execute a script in the page context and retrieve the result
String scriptResult = (String) htmlDoc.getWindow().eval("window.result");

// Step 5: Display the value set by the page script
System.out.println("Result from script: " + scriptResult);
```

لماذا نستخدم `eval` بدلًا من `executeScript`؟ `eval` يقيم التعبير ويعيد النتيجة مباشرة، وهو مثالي للقراءات البسيطة. إذا احتجت تشغيل دالة متعددة الأسطر، مرّر كامل جسم الدالة كسلسلة نصية.

**الناتج المتوقع**

```
Result from script: 42
```

إذا لم يتم تشغيل السكريبت أبدًا (ربما نسيت تمكين JavaScript)، سيكون `scriptResult` قيمته `null` وستطبع وحدة التحكم `Result from script: null`. هذا فحص صحة مفيد.

---

## الخطوة 5 – تشغيل سكريبت الصفحة Java – المشكلات الشائعة وحالات الحافة

### 5.1 تعطيل JavaScript عن طريق الخطأ

إذا رأيت `null` أو استثناء مثل `ReferenceError: result is not defined`، تحقق مرة أخرى:

```java
loadOptions.setEnableJavaScript(true); // must be true
```

### 5.2 التعامل مع الكود غير المتزامن

محرك Aspose.HTML ينفّذ السكريبتات **متزامنًا** أثناء تحميل المستند. إذا كانت صفحتك تستخدم `setTimeout` أو الـ promises، فإنها **لن** تُنفّذ ما لم تقم يدويًا بضخ حلقة الأحداث:

```java
htmlDoc.getWindow().setTimeout(() -> {
// your async code here
}, 0);
htmlDoc.getWindow().processEvents(); // forces pending tasks to run
```

### 5.3 معالجة أنواع الإرجاع المختلفة

`eval` يعيد كائنًا من النوع `Object`. قم بالتحويل إلى النوع المناسب:

```java
Object raw = htmlDoc.getWindow().eval("window.result");
if (raw instanceof Number) {
int number = ((Number) raw).intValue();
// use as int
}
```

### 5.4 اعتبارات الأمان

تمكين JavaScript يفتح الباب أمام سكريبتات قد تكون ضارة. إذا كنت تقوم بتحميل HTML غير موثوق به، فكر في العزل (sandboxing):

```java
loadOptions.setJavaScriptSandboxEnabled(true);
```

هذا يحد من الوصول إلى DOM ويمنع التفاعل مع نظام الملفات.

---

## مثال كامل يعمل

فيما يلي البرنامج **الكامل** الذي يمكنك نسخه ولصقه في ملف اسمه `JsExecutionDemo.java`. استبدل `YOUR_DIRECTORY/interactive.html` بالمسار إلى ملف HTML التجريبي الخاص بك.

```java
import com.aspose.html.*;
import com.aspose.html.saving.*;

public class JsExecutionDemo {
public static void main(String[] args) throws Exception {

// Step 1: Enable JavaScript execution while loading the document
DocumentLoadOptions loadOptions = new DocumentLoadOptions();
loadOptions.setEnableJavaScript(true);

// Step 2: Load the interactive HTML file with the configured options
try (HTMLDocument htmlDoc = new HTMLDocument(
"YOUR_DIRECTORY/interactive.html", loadOptions)) {

// Step 3: Execute a script in the page context and retrieve the result
String scriptResult = (String) htmlDoc.getWindow().eval("window.result");

// Step 4: Display the value set by the page script
System.out.println("Result from script: " + scriptResult);
}
}
}
```

**interactive.html**

```html
<!DOCTYPE html>
<html>
<head>
<title>Interactive Demo</title>
<script>
// Simple script that sets a global variable
window.result = "42";
</script>
</head>
<body>
<h1>JavaScript Test Page</h1>
</body>
</html>
```

شغّل البرنامج باستخدام `mvn compile exec:java -Dexec.mainClass=JsExecutionDemo`. يجب أن ترى الناتج المتوقع يُطبع في وحدة التحكم.

---

## ملخص – ما تم تغطيته

- **كيفية تمكين JavaScript** في Aspose.HTML عبر `DocumentLoadOptions`
- **تحميل HTML مع دعم JavaScript** دون مغادرة بيئة Java
- **كيفية تنفيذ JavaScript** (`eval`) و**استرجاع نتيجة السكريبت** إلى Java
- نصائح عملية لـ **run page script java**، التعامل مع الكود غير المتزامن، والعزل (sandboxing)

---

## ما التالي؟

الآن بعد أن أتقنت الأساسيات، قد ترغب في استكشاف:

- **التلاعب بـ DOM** من Java (مثال: `htmlDoc.getBody().appendChild(...)`)
- **تشغيل سكريبتات متعددة** وقراءة كائنات معقدة (تسلسل JSON)
- **تصدير الصفحة المرسومة** إلى PDF أو صورة باستخدام `htmlDoc.save("output.pdf", SaveFormat.PDF)`

كل من هذه المواضيع يبني مباشرةً على أساس **load html with javascript** الذي وضعناه هنا.

---

### أفكار نهائية

لقد تعلمت الآن **كيفية تمكين JavaScript** في Java HTMLDocument، نفّذت سكريبت صفحة، واسترجعت النتيجة إلى تطبيقك. هذا نمط بسيط يفتح الكثير من الوظائف المخفية في ملفات HTML الساكنة. لا تتردد في تعديل المثال، تجربة سكريبتات مختلفة، ودمج النهج في مشاريع أكبر. برمجة سعيدة!

{{< /blocks/products/pf/tutorial-page-section >}}
{{< /blocks/products/pf/main-container >}}
{{< /blocks/products/pf/main-wrap-class >}}
{{< blocks/products/products-backtop-button >}}
Loading