اذهب الي المحتوي
أوفيسنا

النوافذ المنبثقة في أداة webbrowser


الردود الموصى بها

السلام عليكم

عند استخدام أداة webbrowser في التصفح. عوض ظهور نافذة جديدة في الأداة. يقوم البرنامج بفتح صحفة في متصفح أنترنت أكسبلورر

المطلوب هو هل يمكن فتح الصفحة الجديدة على نفس الأداة دون فتح الأنترنت أكسبلورر

كما يوضح هذا المثال:

44.jpg.9a69b69721a5cb415a49c6ef1f9dc5a9.jpg

ويب.accdb

رابط هذا التعليق
شارك

وعليكم السلام ورحمة الله وبركاته

اعتقد استاذنا الفاضل ان الامر متعلق بكود البحث نفسه

فاذا كنت تقصد موقع اوفيسنا تحديدا فكود البحث الموجود كالتالي

  <!--بداية كود البحث -->
  <style type="text/css">
@import url(//www.google.com/cse/api/branding.css);
</style>
<div class="cse-branding-bottom" style="background-color:#FFFFFF;color:#000000">
  <div class="cse-branding-form">
    <form action="http://www.google.ae" id="cse-search-box" target="_blank">
      <div>
        <input type="hidden" name="cx" value="partner-pub-4958585055085854:7791406915" />
        <input type="hidden" name="ie" value="UTF-8" />
        <input type="text" name="q" size="55" />
        <input type="submit" name="sa" value="Search" />
      </div>
    </form>
    <script type="text/javascript" src="http://www.google.com/jsapi"></script>
    <script type="text/javascript">google.load("elements", "1", {packages: "transliteration"});</script>
    <script type="text/javascript" src="http://www.google.com/cse/t13n?form=cse-search-box&t13n_langs=ar"></script>
  </div>
  <div class="cse-branding-logo">
    <img src="http://www.google.com/images/poweredby_transparent/poweredby_FFFFFF.gif" alt="Google" />
  </div>
  <div class="cse-branding-text">
    Custom Search
  </div>
</div>

  <!--نهاية كود البحث -->

والتعديل يكون كالتالي

<form action="http://www.google.ae" id="cse-search-box" target="_self">

بدلاً من

<form action="http://www.google.ae" id="cse-search-box" target="_blank">

تحياتي

  • Like 2
رابط هذا التعليق
شارك

11 ساعات مضت, محمد ابوعبد الله said:

الامر متعلق بكود البحث نفسه

فاذا كنت تقصد موقع اوفيسنا تحديدا

أهلين أستاذ محمد شكرا على المداخلة

أنا لا أقصد موقع أوفيسنا تحديدا وضعته كمثال فقط و هناك العديد من المواقع بها هذا الأمر.

نحن لا نستطيع التعديل على أكواد الصفحة لأنها في كل مرة تفتحها تعود كما هي.

أخي عندما يكون التصفح باستخدام فايرفوكس أو كروم يقوم بفتح الصفحة في تبويب جديد 

فهل هناك إمكانية فتح تبويب جديد في أداة ويب براوزر

رابط هذا التعليق
شارك

السلام عليكم ورحمه الله وبركاته

ممكن اشارك معكم اخوانى اساتذتى

لا اعلم ان كان هذا ما تقد اخى واستاذى @صالح حمادي عسى ان يكون ما تريد ان شاء الله

MS Access VBA للحصول على بيانات من محتوى عنصر تحكم مستعرض الويب

هذه ترجمه الاجابه

هذا الصباح ، أنا حل المشكلة. لقد كنت مرتبكًا جدًا بسبب عدم عرض مستعرض الكائنات خاصية مستندات لعنصر تحكم مستعرض الويب الذي أضفته إلى نموذج Access الخاص بي. اتضح لي أنني قد قرأت في منشور آخر في مكان ما هناك أن الشخص قد بذل جهودًا كبيرة لذكر أنه لم يضف عنصر تحكم مستعرض ويب من مربع أدوات التحكم على شريط الشريط ، ولكنه أضاف مستعرض ويب ActiveX مراقبة.

بمجرد حذف عنصر تحكم مستعرض الويب Access وإضافة عنصر تحكم مستعرض ويب ActiveX بدلاً من ذلك ، بدأت الأمور تعمل كما هو متوقع! كان عنصر تحكم مستعرض ActiveX خاصية .document وكنت قادراً على قراءة المعلومات من عنصر تحكم المستعرض في نموذج Access الخاص بي. إليك ما فعلته للحصول على هذا العمل:

    لإدراج عنصر تحكم مستعرض ويب ActiveX في نموذج MS Access:
        حدد "عناصر تحكم ActiveX" من القائمة المنسدلة "عناصر التحكم" في علامة التبويب "أدوات تصميم النموذج" / MS "أدوات الوصول إلى MS Access" على الشريط
        مرر القائمة لأسفل خلال القائمة وحدد "مستعرض ويب Microsoft" ثم انقر فوق [موافق] ثم ضع عنصر التحكم في النموذج

    في الحدث Form_Open ، أضف الكود المطلوب للانتقال إلى صفحة الويب المطلوبة ، على سبيل المثال ، باستخدام كائن مستعرض الويب ActiveX المسمى webView:

    

Me.webView.Object.Navigate "http://www.yoururl.com



    لقراءة البيانات من صفحة الويب ، قمت بتعيين TimerInterval للنموذج على 100 (لكل 100 مللي ثانية) وأضع الكود هناك لجمع البيانات المطلوبة في متغيرات لاستخدامها لاحقًا ؛ بمجرد تشغيل حدث Timer ، قمت بتعيين TimerInterval على 0 بحيث لن يتم تشغيله مرة أخرى. على سبيل المثال ، في الحدث Form_Timer ومع متصفح الويب ActiveX المسمى webView:

    مع Me.webView.Object
     

With Me.webView.Object
    While .Busy Or .ReadyState <> 4  'thanks to @ErikvonAsmuth for .ReadyState <> 4
        DoEvents
    Wend

    SDate = .Document.getElementByID("SDate").innerText
    Omega = .Document.getElementByID("Omega").innerText

End With

Me.TimerInterval = 0  'turn off timer since we've got the data needed


بعد ما سبق ، تمكنت من التحقق من قيم SDate و Omega في رمز VBA. بالطبع ، تحتاج إلى معرفة قيم معرّف العناصر ، ولكن يمكن للمنتديات الأخرى أن تعلمك كيفية العثور على قيم المعرف هذه.

آمل أن يساعد هذا شخص آخر!

طبتم واهتديتم

 

رابط هذا التعليق
شارك

3 دقائق مضت, أحمد الفلاحجى said:

ممكن اشارك معكم اخوانى اساتذتى

مرحبا بك أخي على الرحب و السعة

ليس هذا المطلوب. بل المطلوب هو عدم فتح روابط خارج الأداة

يعني عندما أضغط على زر معين كما وضحت في المثال الأول لا يقوم البرنامج بفتح الرابط باستخدام مستعرض أنترنت أكسبلورر

رابط هذا التعليق
شارك

تسلم اخى واستاذى

اها تمام فهمت ما تقصده الان

ان شاء الله تتيسر الامور ولعل سؤال فى قسم الويب سوف يساعد

تقبلوا تحياتى

طبتم واهتديتم

رابط هذا التعليق
شارك

استاذ @صالح حمادي

 اعتقد هناك حدث فتح نافذة جديده للمستعرض وهنا ويحتوي الكانسل كباراميتر .. انادي هذا الحدث وتمرير الالغاء بالموفقة وهنا ستم عدم فتحناذة جديده

بعدها انادي اللينك الجديد كمصدر للمستعرض ةاعيد تحميله بناء على هذا اللينك ويمكن اصطياده بفكرتين

1 اعتقد حدث عند تغير حالة الحالة او معرفة اسم زر الامر واصياد اللينك تبعه

عالعموم هذه مجرد مفاتيح وان شاء الله احاول اطبقها قريب ان شاء الله

واعتقد الاستاذ ابو ابراهيم الغامدي اعمق منا في هذا المجال وان شاء الله يكرمنا بمروره

تحياتي

  • Like 3
رابط هذا التعليق
شارك

أهلين أستاذ رمهان سعيد بمرورك

2 ساعات مضت, رمهان said:

 اعتقد هناك حدث فتح نافذة جديده للمستعرض وهنا ويحتوي الكانسل كباراميتر .. انادي هذا الحدث وتمرير الالغاء بالموفقة وهنا ستم عدم فتحناذة جديده

لقد وجدت هذا الحدث في بعض المنتديات الأجنبية للفجوال بسيك لكنني لم أفلح في تطبيقها

2 ساعات مضت, رمهان said:

1 اعتقد حدث عند تغير حالة الحالة او معرفة اسم زر الامر واصياد اللينك تبعه

هذه فكرة جيدة سوف أحاول تطبيقها

2 ساعات مضت, رمهان said:

واعتقد الاستاذ ابو ابراهيم الغامدي اعمق منا في هذا المجال وان شاء الله يكرمنا بمروره

ننتظر مشاركة الأستاذ @أبو إبراهيم الغامدي

رابط هذا التعليق
شارك

6 ساعات مضت, رمهان said:

اعتقد هناك حدث فتح نافذة جديده للمستعرض وهنا ويحتوي الكانسل كباراميتر .. انادي هذا الحدث وتمرير الالغاء بالموفقة وهنا ستم عدم فتحناذة جديده

لقد نجحت في تطبيق هذا الجزء و إلغاء فتح النافذة الجديدة

بقي إصطياد اللينك الآن

و هذا هو الكود: 

Private Sub WebBrowser4_NewWindow2(ppDisp As Object, Cancel As Boolean)
 Cancel = True
End Sub

 

  • Like 2
رابط هذا التعليق
شارك

أهلا بالجميع..

أهلا أ. @صالح حمادي ... أ. @رمهان يتعمد احراجي دائما..

الروابط في صفحة الويب لها تابع الروابط (Links) يمكن استهدافه والتعديل على خصائصه.. 

الرابط له خصيصة تدعى الهدف (TARGET) هي التي تتحكم في وجة الرابط.. يمكن التعرف عليها من الرابط التالي Anchor target Property

الشفرة التالية تقوم بتغيير قيمة الخصيصة للفتح في الداخل.. 

Private Sub WebBrowser0_DocumentComplete(ByVal pDisp As Object, URL As Variant)
  Dim WD As Object
  Set WD = Me.WebBrowser0.Document
  
  For I = 0 To WD.links.length - 1
    WD.links(I).Target = "_self"
    '//WD.links(I).Target = "_blank"
    
  Next
End Sub

يمكن التبديل مع السطر المعطل لمعرفة الفرق..

:: للفائد.. النماذج لها نفس الأسلوب مع التابع (Forms)

 

:: المثال..

ويب.accdb

  • Like 3
رابط هذا التعليق
شارك

1 ساعه مضت, أبو إبراهيم الغامدي said:

أ. @رمهان يتعمد احراجي دائما..

نريد تحفيزك على البحث و الإستفادة منك و أنت ايضا تستفيد من هذا السؤال ببحثك. لأنه لا حياء في العلم و لا حرج كذلك

سوف أجرب المرفق و أخبرك

  • Like 1
رابط هذا التعليق
شارك

6 ساعات مضت, أبو إبراهيم الغامدي said:

الشفرة التالية تقوم بتغيير قيمة الخصيصة للفتح في الداخل..

هذه الشفرة لم تنفذ الأمر فقمت بالتعديل عليها و أصبح الكود يغير الخاصية بشكل جيد و هذا شكل الكود بعد التعديل:

Dim WD As Object
  Set WD = Me.WebBrowser4.Document
  For i = 0 To WD.links.length - 1
      WD.all.Item(i).target = "_self"
  Next i

بقي الحدث المناسب فهذا الحدث 

WebBrowser0_DocumentComplete

لا يظهر دائما أحيانا ينفذ الأكواد و أحيانا أخرى لا 

يعني لا أدري ما هو السبب وراء ذلك

  • Like 1
رابط هذا التعليق
شارك

3 ساعات مضت, أبو إبراهيم الغامدي said:

أ.صالح.. يمكن الوصول إلى ما تريد إذا شاركتنا الفكرة التي تريد الوصول إليها..

الفكرة هي إلغاء ظهور نوافذ جديدة في متصفح أنترنت أكسبلورر عند الضغط على زر في صفحة الويب (هذا الجزء تمكنت من حله)

جلب رابط النافذة الجديدة التي منعنا ظهورها و فتحه في أداة webbrowser بالنموذج (هذا الجزء الكود الذي تفضلت به و عدلت عليه أنا يقوم بالواجب لكن بقي الحدث المناسب ليتم تنفيذ الكود دائما).

  • Like 1
رابط هذا التعليق
شارك

56 دقائق مضت, صالح حمادي said:

الفكرة هي إلغاء ظهور نوافذ جديدة في متصفح أنترنت أكسبلورر عند الضغط على زر في صفحة الويب

ما أقصده؛ لماذا تريد فتح صفحات الويب داخل Web Browser Object 

.. أريد أن أوضح هنا أن الحدث Document_Complete لا يقع إلا مرة واحدة عند اكتمال فتح الصفحة التي تم استدعاها عن طريق الإجراء Navigate. وللتخلص من هذه الإشكالية يمكن استخدام الحدث Download_Complete 

  • Like 1
رابط هذا التعليق
شارك

5 دقائق مضت, أبو إبراهيم الغامدي said:

ما أقصده؛ لماذا تريد فتح صفحات الويب داخل Web Browser Object 

لأنه عندما يفتح نافذة جديدة في مستعرض أنترنت أكسبلورر يطلب مني ادخال اسم المستخدم و كلمة المرور من جديد. و أنا لا أريد ذلك

9 دقائق مضت, أبو إبراهيم الغامدي said:

.. أريد أن أوضح هنا أن الحدث Document_Complete لا يقع إلا مرة واحدة عند اكتمال فتح الصفحة التي تم استدعاها عن طريق الإجراء Navigate. وللتخلص من هذه الإشكالية يمكن استخدام الحدث Download_Complete 

فعلا الحدث Document_Complete يقع عند إكتمال الصفحة و قد جربته على منتدى أوفيسنا لكنه لا يعمل بالشكل المطلوب أحيانا يعمل و أحيانا لا

فقمت بتجربته على موقع آخر و كانت النتائج رائعة و يعمل بشكل جيد.

  • Like 1
رابط هذا التعليق
شارك

13 ساعات مضت, أبو إبراهيم الغامدي said:

الروابط في صفحة الويب لها تابع الروابط (Links) يمكن استهدافه والتعديل على خصائصه.. 

هل يمكن استخراج نص الرابط

رابط هذا التعليق
شارك

52 دقائق مضت, صالح حمادي said:

هل يمكن استخراج نص الرابط

نعم يمكن..

الشفرة التالية تطبع نص الرابط في النافذة السريعة

Sub OPEN_LINKS()
  Dim WD As Object
  Set WD = Me.WebBrowser0.Document
  
  Dim I As Integer
  For I = 0 To WD.links.length - 1
    Debug.Print WD.links(I).innertext
  Next
End Sub

 

  • Like 1
رابط هذا التعليق
شارك

الخاصية innertext تطبع النصوص الموجودة في جميع عناصر الصفحة

11 ساعات مضت, أبو إبراهيم الغامدي said:

Sub OPEN_LINKS()

أما هذا الحدث فلم يعمل معي

رابط هذا التعليق
شارك

4 ساعات مضت, صالح حمادي said:

الخاصية innertext تطبع النصوص الموجودة في جميع عناصر الصفحة

أما هذا الحدث فلم يعمل معي

أظن أنك تسأل عن النماذج (Forms) وليس الروابط (Links) ولهذا لم تلبي الشفرة متطلباتك..

من مراجعتي للمشاركات السابقة أرى اهتمامك منصب على نموذج نسجيل الدخول. 

لم لا تحدد موقعا معينا نقوم بالعمل عليه حتى نصل إلى النتيجة المرضية لك..

 

للعلم..

يعتمد الغرض Web Browser على محرك الاصدار السابع لــ Internet Explorer وهناك مواقع لا تقدم مساندة لهذا الإصدار.

 

 

رابط هذا التعليق
شارك

أولا: أعتذر منك أخي إبراهيم لأنني أزعجتك بهذه الأسئلة

4 ساعات مضت, أبو إبراهيم الغامدي said:

أظن أنك تسأل عن النماذج (Forms) وليس الروابط (Links) ولهذا لم تلبي الشفرة متطلباتك..

أنا أسأل عن الروابط و ليس النماذج

4 ساعات مضت, أبو إبراهيم الغامدي said:

من مراجعتي للمشاركات السابقة أرى اهتمامك منصب على نموذج نسجيل الدخول.

لا يا أستاذ ليس منصب على نموذج تسجيل الدخول

أنا أستطيع التعامل جيدا مع النماذج من إرسال و إستقبال البيانات و كذلك الأزرار و مربعات النص و القوائم المنسدلة..

4 ساعات مضت, أبو إبراهيم الغامدي said:

لم لا تحدد موقعا معينا نقوم بالعمل عليه حتى نصل إلى النتيجة المرضية لك..

الموقع الذي أريد العمل عليه هو موقع محلي أو داخلي لا يشتغل من مكان آخر لذلك وضعت موقع أوفيسنا في المثال الأول

4 ساعات مضت, أبو إبراهيم الغامدي said:

عتمد الغرض Web Browser على محرك الاصدار السابع لــ Internet Explorer وهناك مواقع لا تقدم مساندة لهذا الإصدار.

نعم و أنا أستعمل IE 11 

الخلاصة:

لاستخراج الروابط الموجودة في الصفحة نغير في الكود الذي تقدمت به كالتالي:

في مكان هذا السطر:

WD.links(I).innerText

نضع هذا السطر:

WD.links(I).href

لأن href هي المسؤولة على الروابط

2- الحدث Document_Complete يعمل بشكل ممتاز عندما طبقته على الموقع الخاص بي أو على موقع غوغل و العديد من المواقع الأخرى.

3- 

في ٨‏/١٢‏/٢٠١٩ at 09:02, أبو إبراهيم الغامدي said:

Private Sub WebBrowser0_DocumentComplete(ByVal pDisp As Object, URL As Variant) Dim WD As Object Set WD = Me.WebBrowser0.Document For I = 0 To WD.links.length - 1 WD.links(I).Target = "_self" '//WD.links(I).Target = "_blank" Next End Sub

عدلت على هذا الكود ليقوم بالمرور على جميع العناصر و يستخرج جميع الروابط الموجودة. لأنني وجدته ينفذ المطلوب مع جميع الصفحات بشكل جيد و أصبح شكله كالتالي:

Private Sub WebBrowser4_DocumentComplete(ByVal pDisp As Object, URL As Variant)
On Error Resume Next
Dim WD As Object
  Set WD = Me.WebBrowser4.Document
  For i = 0 To WD.all.length
      WD.all.Item(i).target = "_self"
  Next i
End Sub

يعني أنا وصلت للمطلوب أو السؤال الذي وضعته في بداية الموضوع و الحمد لله و بارك الله فيك و في الأستاذ رمهان و جميع الإخوة المشاركين.

و أردت أن أطبق فكرة الأستاذ رمهان كحل آخر و إثراء للموضوع و هي الحصول على رابط النافذة المنبثقة و نضعه مصدر لأداة ويب براوزر فقمت بالبحث و حصلت على التالي:

4- هذا الكود يقوم بعرض رابط الصفحة التي سوف تفتح في نفس الأداة باستخدام حدث BeforeNavigate2 

Private Sub WebBrowser0_BeforeNavigate2(ByVal pDisp As Object, URL As Variant, Flags As Variant, TargetFrameName As Variant, PostData As Variant, Headers As Variant, Cancel As Boolean)
  MsgBox URL
End Sub

بقي الآن هل نستطيع الحصول على الرابط الذي سوف يفتح في النافذة المنبثقة.

و هذا مثال لما شرحته:

webbrowser.accdb

  • Like 2
رابط هذا التعليق
شارك

5 ساعات مضت, صالح حمادي said:

يعني أنا وصلت للمطلوب أو السؤال الذي وضعته في بداية الموضوع

إذا دعني أنهي مداخلتي في هذه المشاركة لأنك وصلت لطلبك..

إذا أرت إثراء الموضوع والتوسع في استخدام Web Browser Object فيمكنك فتح نقاش في حائط الموقع للتخلص من قيود السؤال والجواب..

 

رابط هذا التعليق
شارك

4 ساعات مضت, أبو إبراهيم الغامدي said:

إذا دعني أنهي مداخلتي في هذه المشاركة لأنك وصلت لطلبك..

بارك الله فيك و لك و جزاك الله عنا كل خير.

4 ساعات مضت, أبو إبراهيم الغامدي said:

إذا أرت إثراء الموضوع والتوسع في استخدام Web Browser Object

أنا لا أريد التوسع في web browser object لأنني أستخدمه منذ مدة و أتحكم فيه جيدا

بالإضافة إلى أن هذا السؤال متعلق بالموضوع و ليس خارجه و سوف يكون حل أمثل و أفضل من الأول لو نستطيع الحصول على رابط النافذة المنبثقة

يعني حاليا هذا ما عجزت عن فعله فقط في الأداة.

و ربما سوف أفتح موضوع جديد و شامل أشرح فيه التعامل مع web browser object و خاصة النماذج و إرسال و إستقبال البيانات إذا سمح لي الوقت بذلك.

على العموم شكرا جزيلا مجددا أستاذ و تقبل إعتذاري الشديد. و سوف أجري بعض التجارب و إذا توصلت لشيء سوف أخبرك به.

رابط هذا التعليق
شارك

16 ساعات مضت, أبو إبراهيم الغامدي said:

إذا أرت إثراء الموضوع والتوسع في استخدام Web Browser Object فيمكنك فتح نقاش في حائط الموقع للتخلص من قيود السؤال والجواب..

عفواً

ماهو حائط الموقع !؟

12 ساعات مضت, صالح حمادي said:

 سوف أفتح موضوع جديد و شامل أشرح فيه التعامل مع web browser object و خاصة النماذج و إرسال و إستقبال البيانات إذا سمح لي الوقت بذلك.

ياريت استاذ صالح هذا الموضوع مهم بارك الله فيك وفي الاستاذ ابراهيم الغامدي

تم تعديل بواسطه محمد سلامة
رابط هذا التعليق
شارك

5 ساعات مضت, محمد سلامة said:

عفواً

ماهو حائط الموقع !؟

هو مدونات الفريق 

رابطها في أعلى الصفحة تحت تبويب [تصفح الموقع]

  • Thanks 1
رابط هذا التعليق
شارك

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information