عرض الحوار من تمديد الكروم
-
22-09-2019 - |
سؤال
أحاول عرض مربع حوار JavaScript Modal في Chrome عندما يقوم المستخدم بإنشاء إشارة مرجعية. ومع ذلك ، بعد محاولة الإغلاق و simplemodal+jQuery ، لا يمكنني الحصول على مربع حوار للظهور. هل هذا قيود على الامتدادات في Chrome ، أم أنني أفعل شيئًا خاطئًا جدًا؟ (ما زلت أتعلم JavaScript ، لذا فإن افتقاري إلى فهمه يمكن أن يكون السبب.)
هنا هو الكود الخاص بي باستخدام الإغلاق. إنه يجعلها في الوظيفة ، بحيث يعمل بشكل جيد. أي اقتراحات؟ شكرًا!
<html>
<head>
<script src="./lib/closure-library/closure/goog/base.js"></script>
<script type="text/javascript" src="./lib/closure-library/closure/goog/deps.js"></script>
<script>goog.require('goog.ui.Dialog');</script>
<script type="text/javascript">
chrome.bookmarks.onCreated.addListener(function(id, bookmark) {
// Setup the dialog box.
var dialog1 = new goog.ui.Dialog();
dialog1.setContent('[Insert Placeholder]');
dialog1.setTitle('Title Placeholder');
// Display dialog.
dialog1.setVisible(true);
});
</script>
</head>
<body>
<!-- Do Nothing -->
</body>
</html>
المحلول
لا يمكنك استخدام مربع حوار مثل هذا في صفحة الخلفية:
يمكنك القيام بذلك لصفحة الخيارات:
لذلك في حالتك ، قد ترغب في الاستماع إلى الإشارات المرجعية ، وبما أنك تريد إجراء مربع حوار ، ستحتاج إلى التواصل مع الصفحة نفسها. لذلك ، يمكنك الحصول على selecttab عبر:
بمجرد الحصول على علامة التبويب ، يمكنك بعد ذلك تنفيذ JavaScript:
نصائح أخرى
لتوضيح إجابة محمد قليلاً ، يكون حوار إغلاق وسيط HTML في الصفحة. ربما يكون هذا يعمل بالفعل في الكود الخاص بك ، ولكن نظرًا لأنك تقوم بذلك في صفحة الخلفية ، وصفحة الخلفية غير مرئية ، فأنت لا ترى ذلك. يمكنك استخدام التقنيات التي تستخدم Window.Open أو Window.Alert من صفحة الخلفية ، ولكن ليس الأشياء التي تحاول عرض HTML التفاعلي للمستخدم. لذلك ، ستحتاج إلى إدخال المحتوى في نافذة منبثقة أو في الصفحة نفسها كما يوحي محمد.