Rumah > hujung hadapan web > Soal Jawab bahagian hadapan > pelayar web wtl pengendalian ralat javascript

pelayar web wtl pengendalian ralat javascript

WBOY
Lepaskan: 2023-05-17 15:16:38
asal
678 orang telah melayarinya

Dalam pembangunan web, JavaScript adalah bahagian penting. Dengan pembangunan dan aplikasi JavaScript yang berterusan, pembangun berhadapan dengan lebih banyak ralat JavaScript. Ralat ini boleh menyebabkan ranap halaman, kegagalan fungsi, atau kebocoran maklumat pengguna. Oleh itu, adalah sangat penting untuk mengenal pasti dan mengendalikan ralat JavaScript dengan segera. Artikel ini akan memperkenalkan cara menggunakan kawalan WebBrowser, WTL dan JavaScript untuk pengendalian ralat JavaScript.

  1. Pengenalan kepada kawalan WebBrowser

Kawalan WebBrowser ialah kawalan ActiveX dalam sistem pengendalian Microsoft Windows dan boleh digunakan untuk membenamkan penyemak imbas web. Kawalan WebBrowser menyokong semua fungsi penyemakan imbas web yang disokong oleh pelayar IE, seperti HTML, CSS, JavaScript, dsb.

Kawalan Penyemak Imbas Web boleh membenamkan penyemak imbas web dalam aplikasi Win32 tempatan, menyediakan antara muka GUI gaya pelayar dan membenarkan pembangun menggunakan bahasa pengaturcaraan seperti C++ untuk memanggil API pelayar untuk mengakses kandungan web. Kawalan ini membolehkan pembangun membenamkan halaman web dalam aplikasi desktop seperti Microsoft Word, menyediakan antara muka dan fungsi pengguna yang lebih kaya.

  1. Pengenalan rangka kerja WTL

WTL (Windows Template Library) ialah perpustakaan templat C++ untuk pembangunan aplikasi Windows. Ia menggunakan teknologi seperti kelas templat yang disediakan oleh ATL (Active Template Library) untuk memudahkan pembangun menulis aplikasi Windows. Oleh kerana WTL menggunakan kelas templat, ia boleh mengurangkan beban untuk mencipta kawalan dan sumber pemprosesan Oleh itu, WTL ialah salah satu perpustakaan UI berprestasi terbaik pada platform Windows.

WTL menyediakan sejumlah besar makro dan kelas templat untuk kawalan tetingkap dan pemprosesan mesej, yang boleh mengurangkan jumlah kod untuk panggilan API Win32. Ia menyediakan sejumlah besar kelas pembantu dan alatan untuk mencipta, melanjutkan dan berinteraksi dengan kawalan antara muka, membolehkan pembangun menyepadukan kawalan WebBrowser dalam program mereka dalam masa yang lebih singkat.

  1. Pengenalan kepada Pengendalian Ralat JavaScript

Memandangkan JavaScript ialah bahasa tafsiran masa jalan, ralat mungkin berlaku dalam kod. Ralat JavaScript dibahagikan kepada ralat sintaks dan ralat logik.

Ralat sintaks ialah ralat yang disebabkan oleh kod yang tidak mematuhi spesifikasi sintaks JavaScript. Contohnya, kesilapan ejaan, koma hilang, kurungan tidak sepadan, dsb.

Ralat logik ialah ralat yang disebabkan oleh maksud kod yang salah atau konteks pelaksanaan yang salah. Contohnya, menambah rentetan dan nombor, menggunakan pembolehubah tidak diisytiharkan, dsb.

Untuk ralat sintaks, ia boleh diperbetulkan melalui IDE atau editor kod. Untuk ralat logik, ia perlu diselesaikan melalui penyahpepijatan kod atau pengendalian ralat. Kaedah pengendalian ralat JavaScript terbahagi terutamanya kepada penyataan cuba-tangkap dan kaedah window.onerror.

Pernyataan cuba-tangkap ialah kaedah pengendalian ralat biasa Ia digunakan untuk menangkap ralat yang berlaku dalam blok kod cuba dan mengendalikannya melalui pernyataan dalam blok kod tangkapan. Contohnya:

try {
  // some code
}
catch(err) {
  console.log(err.message);
}
Salin selepas log masuk

Kaedah window.onerror ialah kaedah pengendalian ralat global JavaScript yang membenarkan pembangun mengendalikan ralat JavaScript semasa masa jalan. Contohnya:

window.onerror = function(message, url, lineNumber) {
  console.log("Error: " + message + " in " + url + " at line " + lineNumber);
}
Salin selepas log masuk
  1. Kawalan WebBrowser dibenamkan dalam aplikasi WTL

Untuk membenamkan kawalan WebBrowser dalam WTL, anda perlu melakukan langkah berikut:

4.1 Cipta aplikasi WTL Aplikasi Win32

Gunakan Visual Studio untuk mencipta aplikasi Win32 kosong, kemudian pilih Wizard Aplikasi WTL dan cipta aplikasi WTL.

4.2 Tambah kawalan WebBrowser dalam kotak dialog

Dalam editor dialog, tambahkan jenis ruang "CCustomControl", dan kemudian tetapkan IDnya kepada "IDC_EXPLORER".

4.3 Buat kelas yang mengandungi kawalan WebBrowser

rreee

4.4 Tambah kawalan WebBrowser dalam kelas dialog

Dalam fail pengepala kelas dialog, tambahkan pembolehubah ahli:

class CWebBrowserView : public CWindowImpl<CWebBrowserView, CAxWindow> {
  public:
    BEGIN_MSG_MAP(CWebBrowserView)
        MESSAGE_HANDLER(WM_CREATE, OnCreate)
    END_MSG_MAP()

  private:
    LRESULT OnCreate(UINT uMsg, WPARAM wParam,
        LPARAM lParam, BOOL& bHandled) {
      HRESULT hr = CreateControl(CComBSTR("{8856F961-340A-11D0-A96B-00C04FD705A2}"),
          m_hWnd, NULL);
      return 0;
    }
};
Salin selepas log masuk

Dalam OnInitDialog, peruntukkan ruang untuk kawalan WebBrowser:

CWebBrowserView m_wndView;
Salin selepas log masuk
  1. Pengendalian ralat JavaScript

Benamkan skrip JavaScript dalam kawalan WebBrowser, terutamanya seperti Kaedah berikut :

5.1 Menghuraikan secara langsung skrip JavaScript

Anda boleh menghuraikan dan melaksanakan skrip JavaScript secara terus melalui kaedah yang disediakan oleh kawalan WebBrowser. Contohnya:

CRect rcClient;
GetClientRect(&rcClient);
m_wndView.Create(m_hWnd, rcClient, NULL,
    WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN);
Salin selepas log masuk

5.2 Benamkan skrip JavaScript dalam halaman HTML

Anda boleh membenamkan skrip JavaScript dalam halaman HTML, contohnya:

CComPtr<IDispatch> spDocDisp;
m_explorer.QueryService(IID_IDispatch, IID_IDispatch,
    reinterpret_cast<void**>(&spDocDisp));

CComVariant vtResult;
CComBSTR bstrScript("if (confirm('Are you sure?')) { alert('OK'); }");
spDocDisp.Invoke1(L"eval", &CComVariant(bstrScript), &vtResult);
Salin selepas log masuk

5.3 Muatkan fail JavaScript luaran

Fail JavaScript luaran boleh dimuatkan melalui teg skrip dalam halaman HTML. Contohnya:

<html>
  <body>
    <script type="text/javascript">
      function checkForm() {
        var name = document.getElementById("name").value;
        if (name == '') {
          alert('Please enter your name.');
          return false;
        }
        return true;
      }
    </script>

    <form onsubmit="return checkForm();">
      <p>Name: <input type="text" id="name"></p>
      <p><input type="submit" value="Submit"></p>
    </form>
  </body>
</html>
Salin selepas log masuk
  1. Contoh Pengendalian Ralat JavaScript

Benamkan kawalan WebBrowser dalam aplikasi WTL dan benamkan skrip JavaScript dalam halaman HTML, contohnya:

<head>
  <script type="text/javascript" src="test.js"></script>
</head>
Salin selepas log masuk

Tambah pengendalian mesej tetingkap dalam aplikasi WTL untuk mendapatkan mesej ralat JavaScript. Contohnya:

<html>
  <body>
    <script type="text/javascript">
      function test() {
        var name = document.getElementById("name").value;
        if (name == '') {
          throw new Error('Please enter your name.');
        }
      }
    </script>

    <form onsubmit="test();">
      <p>Name: <input type="text" id="name"></p>
      <p><input type="submit" value="Submit"></p>
    </form>
  </body>
</html>
Salin selepas log masuk

Kemudian, daftarkan pengendalian mesej ralat ke acara DocumentComplete kawalan WebBrowser. Contohnya:

LRESULT OnError(UINT uMsg, WPARAM wParam,
    LPARAM lParam, BOOL& bHandled) {
  CComPtr<IServiceProvider> spSrvProvider;
  HRESULT hr = m_explorer.QueryInterface(IID_IServiceProvider,
      reinterpret_cast<void**>(&spSrvProvider));

  CComPtr<IWebBrowser2> spBrowser;
  hr = spSrvProvider->QueryService(SID_SWebBrowserApp,
      IID_IWebBrowser2,
      reinterpret_cast<void**>(&spBrowser));

  CComPtr<IDispatch> spScript;
  hr = spBrowser->get_Script(&spScript);

  CComBSTR bstrMessage;
  hr = spScript.GetPropertyByName(L"error.message",
      &CComVariant(),
      &bstrMessage);

  CComBSTR bstrUrl;
  hr = spScript.GetPropertyByName(L"error.url", &CComVariant(),
      &bstrUrl);

  CComVariant vtLine;
  hr = spScript.GetPropertyByName(L"error.lineNumber",
      &CComVariant(),
      &vtLine);

  ATLTRACE(_T("JavaScript error: %s in %s at line %d"),
      bstrMessage, bstrUrl, V_I4(&vtLine));

  return 0;
}
Salin selepas log masuk

Dengan cara ini, apabila ralat JavaScript ditemui dalam kawalan WebBrowser, maklumat ralat boleh diperoleh dan diproses melalui fungsi pemprosesan mesej OnErro.

  1. Ringkasan

Artikel ini memperkenalkan cara untuk membenamkan kawalan WebBrowser dalam aplikasi WTL dan memperkenalkan kaedah pengendalian ralat JavaScript. JavaScript ialah bahagian penting dalam pembangunan web, dan pengendalian ralat JavaScript yang tepat pada masanya adalah penting untuk meningkatkan keteguhan dan keselamatan aplikasi. Apabila membangun menggunakan kawalan WebBrowser dan teknologi WTL, pembangun boleh melaksanakan pemantauan dan pemprosesan ralat JavaScript dengan lebih mudah, memberikan pengguna aplikasi web yang lebih stabil dan selamat.

Atas ialah kandungan terperinci pelayar web wtl pengendalian ralat javascript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan