في الوقت الحاضر ، هناك المزيد والمزيد من أنواع المتصفح ، مثل IE ، Firefox ، Chrome ، Safari ، وما إلى ذلك ، لذلك ليس من السهل تنفيذ وظيفة صغيرة من نسخ المحتوى إلى الحافظة مع JS.
في عصر Flash 9 ، كان هناك حل لقتل محتوى نسخ JS في جميع المتصفحات إلى الحافظة :
هذا الحل هو واحد من أكثر الطرق شعبية: يستخدم حل نسخ الحافظة الشهير حافظة.
المبدأ هو: إنشاء ملف فلاش مخفي ، وفي الوقت نفسه ، قم بتعيين القيمة "الحافظة = .." إلى فلاش متغير الفلاش. من خلال هذه المهمة ، سيتم وضع المحتوى النسخ على الحافظة. هذه الطريقة متوافقة مع IE و Firefox و Opera و Chrome و Safari ، وهي حقًا حل "عالمي". معدل تثبيت فلاش المستعرض مرتفع للغاية ، وهو حل مثالي تقريبًا.
نسخة الكود كما يلي:
<! doctype html public "-// w3c // dtd xhtml 1.0 transitional // en"
<html xmlns = "http://www.w3.org/1999/xhtml">
<head>
<title> مطور الويب- www.admin10000.com </title>
<meta http-equiv = "content-type" content = "text /html ؛ charset = utf-8" />
<script type = "text/javaScript">
var clipboardswfdata ؛
var setcopy_gettext = function () {
clipboardswfdata = document.getElementById ('test_text'). value ؛
// ALERT (clipboardswfdata) ؛
window.document.clipboardswf.setVariable ('str' ، clipboardswfdata) ؛
}
var floatwin = function () {
تنبيه ('نسخ بنجاح!') ؛
//document.getElementById('clipinner').style.display = 'none' ؛
}
</script>
</head>
<body>
<textarea id = "test_text" rows = "15" cols = "100"> محتوى نص ..... </textarea>
<div id = "clipboard_content">
<viv> <span id = "clipinner"> انسخ الرمز إلى الحافظة
<embered name = "clipboardswf" id = "clipboardswf" onMouseover = "setCopy_getText ()" devicefont = "false" src = "./_ clipboard.swf" menu = "false" legrescriptAccess = "samedomain" swliveConnect = true
</span>
</div>
</div>
</body>
</html>
عنوان تنزيل Clipboard.swf: http://www.jeffothy.com/weblog/uploads/clipboard
ولكن في عصر الفلاش 10 ، لم تعد الطريقة أعلاه ممكنة.
نظرًا لأن Flash10 ينص على أن العمليات الحقيقية فقط على SWF (مثل نقرة الماوس) يمكنها الوصول إلى الحافظة ، في حين أن الطريقة أعلاه تستخدم فقط ملف SWF المخفي وتشغيل حافظة الفلاش عبر JavaScript. لا يقوم المستخدم بإجراء عمليات حقيقية على ملف SWF ، لذلك هذه الطريقة غير صالحة.
إذن كيف تحل مشكلة "العملية الحقيقية"؟ يمكنك استخدام مكتبة JavaScript: Zero Clipboard. يمكن لمكتبة JS دعم Flash 10 نسخ إلى الحافظة. يتمثل مبدأ هذه الطريقة في الكتابة فوق عنصر DOM مثل الزر أو DIV على وميض شفاف (غير مرئي للمستخدم). عند النقر فوق هذا DOM ، فإن النقر الفعلي لـ Flash هو الوصول إلى حافظة الفلاش.
فيما يلي بعض الأمثلة على تصحيح الأخطاء:
نسخة الكود كما يلي:
<! doctype html public "-// w3c // dtd xhtml 1.0 transitional // en"
<html xmlns = "http://www.w3.org/1999/xhtml">
<head>
<title> اختبار الحافظة الصفر </title>
<meta http-equiv = "content-type" content = "text /html ؛ charset = utf-8" />
<script type = "text/javaScript" src = "zeroclipboard.js"> </script>
<script type = "text/javaScript">
var clip = null ؛
الدالة $ (id) {return document.getElementById (id) ؛ }
وظيفة init () {
مقطع = new Zeroclipboard.client () ؛
Clip.SethandCursor (True) ؛
clip.addeventListener ('mouseover' ، function (client) {
// قم بتحديث النص على الماوس
clip.settext ($ ('fe_text'). value) ؛
}) ؛
clip.addeventListener ('complete' ، function (client ، text) {
// debugstr ("نص النسخ إلى الحافظة:" + نص) ؛
تنبيه ("تم نسخ هذا العنوان ، يمكنك لصقه باستخدام Ctrl+V.") ؛
}) ؛
clip.glue ('clip_button' ، 'clip_container') ؛
}
</script>
</head>
<body onload = "init ()">
<input id = "fe_text" cols = "50" rows = "5" value = "copy content text">
<span id = "clip_container"> <span id = "clip_button"> <strong> نسخة </strong> </span> </span>
</body>
</html>
انقر لتنزيل هذه المكتبة: //www.vevb.com/jiaoben/24961.html
يرجى التحميل إلى الموقع أثناء تصحيح الأخطاء. إذا فتحت Flash محليًا مباشرةً ، فسيكون هناك خطأ ، وليس هناك إذن. خاصية MoviePath في ملف Zeroclipboard.js هو عنوان Falsh ، وهو موقع العنوان الذي يتم فيه تخزين Zeroclipboard.swf في الدليل.
يمكن لهذا الحل لنسخ المحتوى إلى الحافظة دعم المتصفحات: Firefox/IE/Opera/Chorme/Safari جميع المتصفحات!