test-esm.html 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. <!doctype html>
  2. <html lang="zh-CN">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6. <title>ESM格式监控SDK测试</title>
  7. </head>
  8. <body>
  9. <h1>ESM格式监控SDK测试页面</h1>
  10. <p>此页面用于测试ES模块格式的监控SDK是否正常工作。</p>
  11. <div id="test-container">
  12. <button id="test-esm-sdk">测试ESM格式SDK</button>
  13. <button id="test-esm-functionality">测试ESM功能</button>
  14. </div>
  15. <div id="result">
  16. <h3>控制台输出:</h3>
  17. <p>请打开开发者工具查看监控SDK的输出信息</p>
  18. </div>
  19. <!-- 使用ES模块语法导入SDK -->
  20. <script type="module">
  21. // 从ESM格式的bundle中导入
  22. // 注意:由于我们的bundle没有导出默认对象,我们需要使用动态导入
  23. console.log("开始测试ESM格式的监控SDK");
  24. // 动态导入ESM格式的bundle
  25. import("../dist/bundle-esm.js")
  26. .then((module) => {
  27. console.log("ESM格式的监控SDK已加载");
  28. console.log("模块内容:", module);
  29. // 检查全局对象是否可用(我们的代码会在全局作用域创建实例)
  30. if (window.MonitorSDK && window.monitorInstance) {
  31. console.log("✅ ESM格式SDK成功初始化全局对象");
  32. // 绑定按钮事件
  33. document.getElementById("test-esm-sdk").addEventListener("click", function () {
  34. console.log("测试ESM格式SDK功能");
  35. // 测试SDK实例
  36. if (window.monitorInstance) {
  37. console.log("SDK实例存在,版本信息:", window.monitorInstance.config);
  38. // 测试数据上报
  39. window.monitorInstance.reportData({
  40. type: "esm_test_event",
  41. message: "ESM格式SDK测试事件",
  42. timestamp: Date.now(),
  43. });
  44. }
  45. });
  46. document
  47. .getElementById("test-esm-functionality")
  48. .addEventListener("click", function () {
  49. console.log("测试ESM格式SDK各项功能");
  50. // 测试错误上报
  51. try {
  52. throw new Error("ESM格式SDK测试错误");
  53. } catch (e) {
  54. window.monitorInstance.reportError({
  55. type: "esm_test_error",
  56. message: e.message,
  57. stack: e.stack,
  58. timestamp: Date.now(),
  59. });
  60. }
  61. // 测试性能数据
  62. window.monitorInstance.reportData({
  63. type: "esm_performance_test",
  64. loadTime: 100,
  65. timestamp: Date.now(),
  66. });
  67. });
  68. } else {
  69. console.error("❌ ESM格式SDK未正确初始化全局对象");
  70. }
  71. })
  72. .catch((error) => {
  73. console.error("❌ 加载ESM格式的bundle时出错:", error);
  74. });
  75. </script>
  76. </body>
  77. </html>