سؤال

احصل على محتوى صفحة ويب في سلسلة باستخدام جافا .NET.URL وتدفقات الإدخال.

المشكلة التي أمتلكها جافا سكريبت هي عدم تقديمها وإيم الحصول عليها كما هو استجابة.

<html>
 <head></head>
 <body>
  <script>
   document.write("<h1>hello world!</h1>");
  </script>
 </body>
</html>

لنفترض أن هذا هو رمز مكتوب في ملف HTML .. الآن أريد عندما أحصل على محتوى صفحة الويب في السلسلة .. يجب على جافا سكريبت B ..

<html>
 <head></head>
 <body>
   <h1>Hello World!</h1>
 </body>
</html>

مثل هذا .. كيف يمكنني أن أفعل ذلك ؟؟؟

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

المحلول

لن يتم تنفيذ JavaScript تلقائيا بواسطة java.net.url. يرى ملف HTML مع JavaScript المضمنة كأي ملف نصي عادي آخر ولا يتم تحليله بأي شكل من الأشكال. لا يتم بناء NO DOM، لا يتم تنفيذ أي جافا سكريبت، لا يتم تطبيق CSS. ما عليك القيام به للحصول على JavaScript المنفذة هو تحليله بشيء مثل htmlunit..

إذا كانت لديك سيطرة على HTML، فأنا أوصي بك فقط لاستبدال document.write() بيانات مع HTML ثابت. بديل بدائي للغاية هو بالطبع فقط للبحث عن التعبير العادي document\.write\(([^\)]+)\);? واستبدالها مع أول مباراة الملتقطة.

نصائح أخرى

https:/developer.mozilla.org/en/core_javascript_1.5_Reference/liveConnect/jsoBject.

قد تكون طريقة Eval في Netscape.javascript.jsibject.com ما تبحث عنه (على الرغم من أنني لست متأكدا مما إذا كان يعتني بمعالجة DOM وإذا كان يعمل عبر المتصفحات).

حظا طيبا وفقك الله!

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