تصف هذه المقالة كيف تفتح JS نافذة جديدة لمنعها من حظرها بواسطة المتصفح. شاركه للرجوع إليه. التحليل المحدد هو كما يلي:
سيتم فتح نافذة جديدة باستخدام طريقة النافذة التقليدية. open () سيتم حظرها بواسطة المتصفح. لذا ، كيف يمكننا جعل JS يفتح نافذة جديدة دون أن يتم حظرها من قبل المتصفح؟ في الواقع ، لا تزال هناك حلول ، سنقوم بتحليل كيفية حل هذه المشكلة
لقد واجهت مثل هذه المشكلة مؤخرًا ، لذلك سأشارككم طريقة ظهور نافذة جديدة. الجميع مرحب بهم لإضافة ...
الأول هو استخدام طريقة JavaScript الأصلية. open () (في معظم الحالات ، سيتم حظرها عن طريق التصفح)
النوع الثاني هو محاكاة تقديم النموذج. المبدأ هو تحديد أن إجراء النموذج هو عنوان عنوان URL الذي تريد فتحه ، ويتم تعيين الهدف على "_blank"
نسخة الكود كما يلي: document.getElementById ("msgtxt"). innerhtml = "<form id = 'hiddenlink' Action = '"+shref+"' target = '_ blank'> <input type = 'hidden' name = '' value = '"+objvalue+"'
var s = document.getElementById ("HiddenLink") ؛
S.Submit () ؛
ومع ذلك ، قد يتم أيضًا حظر طريقة تقديم النموذج الوهمي ...
يتم النقر فوق النوع الثالث ، الارتباط التشعبي المحاكي (<a>)
عند الضغط على زر ، إذا كنت ترغب في فتح علامة تبويب جديدة ، فيمكنك محاكاة الرابط الذي يتم الضغط عليه ثم فتح الرابط.
ومع ذلك ، في jQuery ، باستخدام A.Click () ، A.Trigger ('Click') وهكذا لن يتسبب في تنفيذ الحدث الافتراضي للرابط.
يحاكي الرمز التالي حدث النقر فوق الرابط ، ثم ينفذ الحدث الذي يتم فيه فتح الرابط افتراضيًا.
ومع ذلك ، تجدر الإشارة إلى ما يلي: بالنسبة لمتصفح IE ، يتم دعم دالة المستند.
نسخة الكود كما يلي: var a = $ ("<a href = 'http: //www.test.com' target = '_ blank'> test </a>") .get (0) ؛
var e = document.createEvent ('mouseevents') ؛
E.Initevent ("انقر" ، صحيح ، صحيح) ؛
A.Dispatchevent (E) ؛
النوع الرابع: حادث فقاعات باستخدام المتصفح (أعيد طبعه)
نسخة الكود كما يلي: clickopenwin: function (f) {
var datakey = "clickopenwin.datakey"
var me = $ (this) ؛
var a = me.data (datakey) ؛
var returndata = null ؛
إذا (! أ) {
a = $ ("") ؛
me.data (datakey ، a) ؛
انقر (وظيفة (هـ) {
إذا (returndata) {
A.Attr ("Href" ، returndata) ؛
}آخر {
A.before (أنا) ؛
أوقف()؛
}
}) ؛
}
me.mouseover (function () {$ (this) .before (a) .appendto (a) ؛}) ؛
me.mouseout (function () {a.before ($ (this)) ؛}) ؛
me.click (function () {
A.Attr ("Href" ، "#|") ؛
returnData = f.apply (هذا ، الحجج) ؛
}) ؛
}
1). أولاً ، دعنا نتحدث عن التأثير النهائي ، وهو استخدام "A" لاحتواء العناصر التي تريد تشغيل النافذة المنبثقة. سيعود حدث النقر الأصلي إلى عنوان URL المنبثق. المقابلة لهذه الجملة: انسخ رمز الرمز كما يلي: returnData = f.apply (هذا ، الوسائط) ؛
2). ثم سنتحدث عن استراتيجية الحظر المنبثقة. لن أتحدث عن تلك المحددة. على أي حال ، فإن الاستراتيجية لن تعترض "أ" نفسها.
3). وأخيرا ، يتم توليفها. بعد استخدام A لتضمينه ، لأن الحدث سيخفق ، استخدم نقرات عادية لإنشاء عنوان ارتباط ديناميكي إلى A ، مما يؤدي إلى حدوث حدث النقر الأصلي لـ A ، ثم يتم إكماله.
آمل أن تكون هذه المقالة مفيدة لبرمجة JavaScript للجميع.