नीचे दिया गया उदाहरण एक आईफ्रेम का एक साधारण उदाहरण है जो window.parent का उपयोग करता है। [Designmode चालू करें] (यह काम करता है)। एफएफ में सभी ठीक है, लेकिन आईई 8 (आश्चर्यचकित आश्चर्य) में जब आप आईफ्रेम से बाहर निकलते हैं तो कोई भी चयन खो जाता है। यह iframe के बाहर उपकरणों के उपयोग को पूरी तरह से अस्वीकार करता है। मैं नहीं आप चयन सहेजते जब आइफ्रेम ध्यान केंद्रित खो देता है की कोशिश कर सकते IE8 http://www.chromedigital.co.za/hydrapage/test.htmIE8 iframe DesignMode चयन खो देता है
उत्तर
iframe चयन को तोड़ने के लिए, unselectable="on"
जोड़ें।
उदाहरण के लिए:
<div onclick="makeBold()" unselectable="on">Bold</div>
में एक समाधान 4 दिन बाद ...
ओपन पा सकते हैं। यदि आप सुनिश्चित हैं कि उपयोगकर्ता इस पर फ़ोकस करने से पहले आईफ़्रेम की सामग्री नहीं बदलेगा, तो आप वर्तमान में चयनित Range
या TextRange
स्टोर कर सकते हैं। निम्न स्क्रिप्ट (मुख्य पृष्ठ के लिए), अपने मूल स्क्रिप्ट भी शामिल है बड़े पैमाने पर परीक्षण नहीं किया जाता है और बेहतर सुविधा का पता लगाने के साथ सुधार किया जाएगा, लेकिन साथ काम करने के लिए कुछ है: आप नहीं चाहते मुख्य दस्तावेज़ में किसी भी तत्व पर
h_FF=!document.all
h_rt_F=0
function HLC_DM()
{
h_rt_F=document.getElementById("moo").contentWindow
if(h_FF)
{
if(h_rt_F.document.designMode!="on")
{
try
{
h_rt_F.document.designMode="on"
h_rt_F.document.execCommand("redo",false,null)
createEventHandlers();
}
catch(e)
{
setTimeout("HLC_DM",200)
return false
}
}
}
else
h_rt_F.document.body.contentEditable=true
createEventHandlers();
}
function getContentWindow() {
return document.getElementById("moo").contentWindow;
}
function saveSelection() {
var win = getContentWindow();
var doc = win.document;
var sel = win.getSelection ? win.getSelection() : doc.selection;
var range;
if (sel) {
if (sel.createRange) {
range = sel.createRange();
} else if (sel.getRangeAt) {
range = sel.getRangeAt(0);
} else if (sel.anchorNode && sel.focusNode && doc.createRange) {
// Older WebKit browsers
range = doc.createRange();
range.setStart(sel.anchorNode, sel.anchorOffset);
range.setEnd(sel.focusNode, sel.focusOffset);
// Handle the case when the selection was selected backwards (from the end to the start in the
// document)
if (range.collapsed !== sel.isCollapsed) {
range.setStart(sel.focusNode, sel.focusOffset);
range.setEnd(sel.anchorNode, sel.anchorOffset);
}
}
}
return range;
}
function restoreSelection(range) {
var win = getContentWindow();
var doc = win.document;
var sel = win.getSelection ? win.getSelection() : doc.selection;
if (sel && range) {
if (range.select) {
range.select();
} else if (sel.removeAllRanges && sel.addRange) {
sel.removeAllRanges();
sel.addRange(range);
}
}
}
var selectedRange;
function blurHandler() {
selectedRange = saveSelection();
}
function focusHandler() {
if (selectedRange) {
restoreSelection(selectedRange);
}
}
var iframeHandlersCreated = false;
function createEventHandlers() {
// Prevent setting up twice
if (!iframeHandlersCreated) {
var iframe = document.getElementById("moo");
var doc;
if (iframe.contentDocument && iframe.contentDocument.addEventListener) {
doc = iframe.contentDocument;
doc.addEventListener("blur", blurHandler, false);
doc.addEventListener("focus", focusHandler, false);
} else if (iframe.attachEvent) {
iframe.attachEvent("onbeforedeactivate", blurHandler);
iframe.attachEvent("onfocus", focusHandler);
}
iframeHandlersCreated = true;
}
}
यह कैसे कम किया गया है ?? न केवल यह सवाल पूरी तरह से जवाब देता है, यह काफी शामिल उत्तर है जिसने लिखने के लिए कुछ प्रयास किए। –
हाय टिम - यहां आपके प्रयास के लिए धन्यवाद - मैंने प्रदान किया गया डेमो केवल चयन के नुकसान को इंगित करना था - वास्तविक कोड श्रेणी को संग्रहीत और संसाधित करता है - हालांकि, मैं यह निर्धारित करना चाहता हूं कि यह एक बग या मूल व्यवहार है यानी 8 ।यदि यह कोई बग नहीं है - तो बीमार आपके कोड का उपयोग करें (लेकिन चयन को बनाए रखने के लिए यह अतिरिक्त अतिरिक्त ओवरहेड है) - मैं बस संपादन को प्रतिबंधित कर सकता हूं। यानी –
मैं प्रदान करता हूं डेमो crescentfresh प्रदान करता हूँ। Mabe वहाँ एक समाधान है - उन बटन चयन को मार नहीं है - मेरे खोज पर बीमार अपडेट ... –
मेरे Editbox छवियों, टेबल आदि जहां पिछले iframe में क्लिक किया और IE6, IE7 और एफएफ के लिए काम करता जोड़ सकते हैं लेकिन IE8 के लिए यह शुरू में तो कहते हैं। तब उन्हें काटकर चिपकाया जा सकता है जहां आप उन्हें चाहते हैं लेकिन यह एक उपद्रव है। अधिक गंभीर यह है कि जब मैं किसी तालिका कक्ष के गुणों को बदलना चाहता हूं, उदाहरण के लिए, मुझे अब सेल में कुछ टेक्स्ट होना चाहिए जो मुझे हाइलाइट करना चाहिए या मैं यह निर्धारित नहीं कर सकता कि मैं किस तत्व में हूं!
क्या माइक्रोसॉफ्ट को चयन विधि के लिए कोई बग फिक्स है या फ़ायरफ़ॉक्स या पुराने संस्करण यानी एकमात्र कोर्स है?
माइक डब्ल्यू
पर कितना अच्छा लगता है, आप इसे एक प्रश्न के रूप में पूछना चाहेंगे। –
- 1. अवलोकन योग्य चयन बाध्यकारी खो देता है जब मैं "नया"
- 2. जेसीकबॉक्स पर सेट का चयन क्यों प्रभाव खो देता है?
- 3. चयन रंग बदल जाता है जब Firefox ध्यान केंद्रित खो देता है
- 4. आईडीटाइडर एक पंक्ति क्यों खो देता है?
- 5. Clojure defmacro खो देता है मेटाडाटा
- 6. tinymce देखभाल स्थिति खो देता है
- 7. मुझे कैसे पता चलेगा जब NSTextView फोकस खो देता है?
- 8. IE8
- 9. क्या WPF में DesignMode प्रॉपर्टी है?
- 10. जब कोई तत्व फोकस खो देता है तो जावास्क्रिप्ट चलाएं
- 11. अल्फा मिश्रण आइकन के साथ इमेजलिस्टिस्ट पारदर्शिता खो देता है
- 12. ड्रूपल बहु-फॉर्म पेज रीफ्रेश पर राज्य खो देता है
- 13. ऐप अपडेट स्थापित होने पर सभी सेटिंग्स खो देता है
- 14. Textarea माउस क्लिक पर ध्यान केंद्रित खो देता है?
- 15. क्रोम देव उपकरण नेटवर्क इतिहास खो देता है
- 16. चेतावनी "लागू रूपांतरण पूर्णांक सटीक खो देता है ..."
- 17. जेनकींस समय-समय पर वर्कस्पेस खो देता है, अवांछित बिल्ड
- 18. छिपी हुई यूट्यूब प्लेयर अपनी विधियों को खो देता है
- 19. आईई पर खो गया सत्र फेसबुक ऐप iFrame
- 20. WPF MVVM ViewModel निर्माता designmode
- 21. IE8
- 22. घटक में iframe टैग प्रकाशन पर अधूरा पृष्ठ देता है
- 23. IE8
- 24. iframe
- 25. IE8
- 26. IE8
- 27. IE8
- 28. IE8
- 29. IE8
- 30. IE8
आप गलत कर रहे हैं। अपने IE8 में इस 'संतुष्ट' डेमो को आज़माएं: http://www.quirksmode.org/dom/execCommand/ यह संपादन योग्य क्षेत्र के लिए एक आईफ्रेम का भी उपयोग करता है, और सभी खातों से यह ठीक काम करता है। –
मुझे समझ में नहीं आता है। जबकि मैं मूल प्रश्न में डिज़ाइन मोड को सेट करने के लिए कोड द्वारा आश्वस्त नहीं हूं, वहीं आपके द्वारा लिंक किए गए डेमो ने वही व्यवहार दिखाया है जो इस प्रश्न के बारे में पूछ रहा है। –
@ टिम: मेरे पास IE8 नहीं है लेकिन मेरे पास आईई 7 है, और डेमो निश्चित रूप से शीर्ष बटन के साथ बातचीत करते समय * हार * चयन खो देता है। जॉनी को IE8 में एक वैध बग मिल सकता है। @ जॉनी, क्या आपने अभी तक डेमो की कोशिश की? –