السلام عليكم
هل يوجد طريقة لنسخ محتوى ملف نصي .txt إلى clipboard
إذًا بما أنَّ الموضوع في تطوير الويب؛ فأنت بالتأكيد تقصد JavaScript، لا يوجد بالمتصفحات api حقيقي لنسخ نص، للأسف. سنقوم بدلًا من ذلك بإنشاء عنصر في الخلفية، ثم التحديد عليه ونسخه، مع العلم أنّه لو كان المستخدم يكتب فسيضيع المحدد، فيرفوكس الوحيد الذي يدعم تعدد المحددات، عمومًا هذه الطريقة لا تعمل بشكل صحيح دائمًا بسبب حماية المستخدم تعمل على إصدارات متفاوتة من كروم ولا تعمل على الأخرى وهكذا، عمومًا هذا الدالة ترجه boolean يمكنك استخدامها كحل أول وإن لم تفلح اخرج للمستخدم صفحة به النص مع تحديده وأخبره أن يضغط على زر النسخ:
function copyText(text) {
var dev = document.createElement("div"), // العنصر الذي سننسخه
range = document.createRange(), // المحدد
node = document.createTextNode(text); // المحتوى للعنصر
// الحتوى النصي للعنصر
dev.appendChild(node);
// إخفاء العنصر وإضافته في الخلفية
dev.style.display = "hidden";
dev.style.color = "transparent";
document.body.appendChild(dev);
// تحديد المحتوى
range.selectNode(node);
// حذف المحددات وإضافة محددنا
getSelection().removeAllRanges();
getSelection().addRange(range);
// نسخ النص من المحدد
var ok = document.execCommand("copy", true);
// تنظيف العمل
getSelection().removeAllRanges();
dev.parentElement.removeChild(dev);
return ok;
}
بالنسبة لفتح الملف .txt استخدم ajax لذلك أو أخبرني أساعدك في كتابته بإذن الله.
شكراً لك صديقي على اهتمامك ، أنا أعرف طريقة نسخ نص من عنصر في الصفحة لكن مشكلتي بالتعامل مع ملف .txt
هذه الدالة التي ستستخدمها:
function getContent(url, callback) {
var http = new window.XMLHttpRequest;
http.onreadystatechange = function() {
// الطلب تم الاجابة عليه والحالة مرسل
if (http.readyState == 4 && http.status == 200)
callback(http.responseText)
}
// فتح الطلب بنوع get إلى عنوان الموقع
http.open("GET", url);
// لا نقبل غير ملفات .txt غير هذا إن أردت
http.setRequestHeader("Accept", "text/plain");
// ارسال الطلب
http.send(null);
}
الدالة السابقة غير متزامنة(async)؛ استخدمها هكذا:
getContent("
http:/url.com/text.txt ", function(content) { alert(content) });
أجدد شكري لك على مجهودك ، أريد أن أسألك ما هي الطريقة التي اتبعتها لتعلم javascript ؟
أنا أعمل الآن مطور قوالب ووردبريس و أعتبر نفسي متوسط المستوى في المجال . ما ينقصني هو javascript تعلمت أساسياتها سابقاً لكن وجدت نفسي لا أستطيع تطبيق أي شيء فهل من نصيحة
أخي أرجو ألا أزعجك
بالنسبة لهذا الكود يعمل فقط إن كان الرابط https
فهل من طريقة لفتح ملف موجود في حاسوبي باستخدام مثلا
file:///C:/Documents%20and%20Settings/my%20PC/Desktop/img%20show/txt.txt
أو إن كان على نفس المجلد ب txt.txt
ليس باستخدام ال input file
وشكرا
أخي زكريا
لا يمكن للajax قراءة الملفات المحلية لديك على الحاسب وإلا فإنك ستكون عرضة لسرقة ملفاتك الخاصة
بالإضافة إلى ما قاله الأخ @ahmed3991 فإنه يمكنك إيقاف الأمان في كروم --disable-web-security؛ لكن لن يكون التصفح أمن إطلاقًا.
كما قال @zakariamouhid استخدم إستضافتك لذلك، إلا في حالة ما كنت تريد أن تجرب شيء.
التعليقات