จะวางข้อความในช่องป้อนข้อมูลที่ปิดกั้นได้อย่างไร


14

ในหน้าเว็บจำนวนมากพวกเขากำลังบล็อกคัดลอก / วางโดยใช้ JavaScript

มีวิธีการทำอินพุตเช่นทำงานตามที่ควร (เช่นเปิดใช้งานการคัดลอก / วาง)?

ฉันใช้ Google Chrome


มันไม่น่าเป็นไปได้มาก พวกเขาไม่ได้ใส่เข้าไปในนั้นโดยไม่มีเหตุผลดังนั้นพวกเขาจะปิดกั้นทางใด ๆ เพื่อหลีกเลี่ยงมัน
LPChip

มีหลายวิธีในการหลีกเลี่ยงสคริปต์ดังกล่าวและส่วนขยายเบราว์เซอร์เฉพาะควรแก้ไขปัญหานี้มากมาย
syntagma

1
หากคุณรู้สิ่งนี้อยู่ทำไมคุณโพสต์คำถาม
LPChip

ฉันรู้ว่ามันเป็นไปได้ฉันไม่รู้เกี่ยวกับนามสกุลดังกล่าว
syntagma

หากคุณใช้ Firefox คุณสามารถไปที่ about: config และเปลี่ยน dom.event.clipboardevents.enabled เป็น false ฉันไม่รู้ว่ามีบางสิ่งที่คล้ายกันใน Chrome หรือไม่
user276648

คำตอบ:


16

เพียงไฮไลต์ข้อความและลากลงในช่องข้อความ ลองที่นี่ !

สิ่งนี้ใช้ได้กับฉันใน Firefox และ Chrome


1
สุดยอดทางออก! ในโครเมี่ยมคุณสามารถใส่สตริงนี้ลงในแถบที่อยู่ "data: text / html, <html contenteditable>" (โดยไม่ใส่เครื่องหมายอัญประกาศ) เพื่อรับผืนผ้าใบว่างเปล่า ฉันสร้างที่คั่นหนังสือไว้ ตอนนี้ฉันสามารถวางข้อความของฉันลงในหน้าว่างนี้แล้วลากลงในช่องที่ต้องกรอก
บาง

นี่คือสิ่งที่ดีที่สุด. การพยายามรัน js ในคอนโซลผู้พัฒนาทำให้ฉันปวดหัว ขอบคุณมาก!
Millar248

เท่ ขอบคุณ .. คุณประหยัดเวลาของฉัน
Vitali Petrov

7

มันแฮ็กและจะไม่ทำงานเสมอ แต่มีหลายครั้งที่มีเพียง listener ที่ตั้งค่าไว้สำหรับCTRL+ C/ CTRL+Vและคุณสามารถหลีกเลี่ยงได้โดยใช้CTRL+ INS/ SHIFT+ INSแทนการคัดลอก / วาง

หากพวกเขากำลังทำอะไรที่โง่เขลาเช่นการใช้แฟลชเพื่อเขียนสตริงว่างเปล่าไปยังคลิปบอร์ดในลูป (twitch) คุณก็จะโชคไม่ดี


5

นี่คือ Chrome Extention แบบโอเพ่นซอร์ส

https://chrome.google.com/webstore/detail/dont-fuck-with-paste/nkgllhigpcljnhoakjkgaieabnkmgdkb

หากคุณสนใจรหัสhttps://github.com/jswanner/DontFuckWithPaste


1
นี่ควรเป็นคำตอบที่ถูกต้อง Don't Fuck With Paste มี 465 ดาวใน Github และได้รับการจัดอันดับ 5 ดาวใน Chrome Store - มี 413 บทวิจารณ์ สิ่งนี้ช่วยฉันได้จริงๆ ขอบคุณ!
Ben

สำหรับฉันส่วนขยายนี้ช่วย แต่ไม่สามารถใช้ได้กับทุกไซต์
thin

5

หากคุณใช้ Firefox ฉันพบวิธีแก้ไขปัญหาต่อไปนี้ ไม่แน่ใจว่าต้องใช้เวอร์ชันขั้นต่ำอย่างไร

  1. ไปที่ about:config
  2. ค้นหา dom.event.clipboardevents.enabled
  3. ดับเบิลคลิกเพื่อเปลี่ยนค่าเป็น false

สิ่งนี้ทำให้ฉันสามารถวางได้ทันทีหลังจากเปลี่ยน ฉันไม่ต้องรีสตาร์ทเบราว์เซอร์ด้วยซ้ำ


3

กด F12 และวางรหัสต่อไปนี้ลงในคอนโซล

var allowPaste = function(e){
  e.stopImmediatePropagation();
  return true;
};
document.addEventListener('paste', allowPaste, true);

วิธีการเขียนโปรแกรม ขอบคุณ
Jaber Al Nahian

2

วิธีแก้ปัญหาที่ง่ายที่สุด (ในแง่ของความเป็นมิตรกับผู้ใช้) สำหรับ Google Chrome จะเพิ่มการอนุญาตให้ส่วนขยายการคัดลอก


2
สัตว์แพทย์อย่างระมัดระวังก่อนที่จะติดตั้ง ผู้ตรวจสอบอ้างว่าเป็นมัลแวร์
George

1

คุณสามารถปิดการใช้งานจาวาสคริปต์ในหน้าโดยใช้ bookmarklet ง่ายๆ จาก. http://javascript.about.com/library/bldis.htm

หากคุณสร้างบุ๊กมาร์กที่มีสคริปต์ต่อไปนี้เป็นลิงก์ (หรือแม้แต่วางรหัสนี้ลงในแถบที่อยู่แล้วกด Enter) จากนั้นมันจะตัดจาวาสคริปต์ทั้งหมดออกจากหน้าปัจจุบัน:

javascript:void(d=document);if(frames.length){alert('Script%20doesn/'t%20work%20in%20frames');}else{while((el=d.getElementsByTagName('script')).length){el[0].parentNode.removeChild(el[0]);};onerror=function(){};d.close();}

ปัญหาของหลักสูตรคือในขณะที่คุณจะสามารถวางลงในกล่องข้อความนั้นได้ถ้าแบบฟอร์มที่ใช้ JavaScript เพื่อส่งแบบฟอร์มนั้นก็จะหักเช่นกัน


1

ตัดสินใจเพิ่มโซลูชันของฉันในส่วนนี้ (การสร้าง bookmarklet จาก repo นี้และส่วนขยายhttps://github.com/jswanner/DontFuckWithPaste ) bookmarklet นี้จะอนุญาตให้คัดลอกบนเอกสารที่ปิดการใช้งานจาวาสคริปต์

javascript:(function(){
  allowCopyAndPaste = function(e){ 
      e.stopImmediatePropagation(); 
      return true;
  };
  document.addEventListener('copy', allowCopyAndPaste, true);
  document.addEventListener('paste', allowCopyAndPaste, true);
  document.addEventListener('onpaste', allowCopyAndPaste, true);
})();

AllowCopyAndPaste


โปรดอย่าโพสต์คำตอบเดียวกันกับคำถามหลายข้อ หากข้อมูลเดิมตอบทั้งสองคำถามจริง ๆ แล้วคำถามหนึ่ง (โดยปกติจะเป็นคำถามที่ใหม่กว่า) ควรปิดเหมือนกันกับคำถามอื่น คุณสามารถระบุสิ่งนี้ได้ด้วยการลงคะแนนเพื่อปิดเป็นซ้ำหรือหากคุณไม่มีชื่อเสียงเพียงพอให้ยกธงขึ้นเพื่อระบุว่าซ้ำกัน มิฉะนั้นปรับคำตอบสำหรับคำถามนี้และไม่เพียงแค่วางคำตอบเดียวกันในหลาย ๆ ที่
DavidPostill

0

บน windows คุณสามารถใช้AutoHotkey

ไวยากรณ์:

::whatever::
Send [....text… Use  {enter} for line breaks]
return

ตัวอย่าง: ถ้าคุณพิมพ์xyzมันจะเขียนข้อความด้านล่าง (ราวกับเขียน)

::xyz::
Send hi {enter} This a new line  {enter}. Another new line  {enter} whatsoever. {enter} 
return

1
ฉันชอบอันนี้: ^ Q :: SendInput, {คลิปบอร์ด%% คลิปบอร์ด% CTRL-Q ส่งเนื้อหาของแป้นพิมพ์เป็นอินพุต (คล้ายกับการพิมพ์)
nijave
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.