के अंदर प्रतिस्थापन विधि का उपयोग कर जावास्क्रिप्ट मुझे आश्चर्य है कि iframe
के अंदर अचानक शब्दों को प्रतिस्थापित करना संभव है या नहीं।एक आईफ्रेम
मैंने उसी सामग्री के साथ iframe
के अंदर सामग्री को बदलने के लिए jQuery का उपयोग किया है, लेकिन प्रतिस्थापन के साथ। यहां समस्या यह है कि 'कर्सर रीसेट' इनपुट फ़ील्ड की शुरुआत में है, इसलिए आपको फिर से शुरू से लिखना होगा। अगर आप कर्सर फिर सेट करता है बिना iframe के भीतर सामग्री के कुछ जगह ले सकता है, क्योंकि यह जब आप लिखते हैं की सराहना नहीं कर रहा है और यह सिर्फ शुरू से ही शुरू होता है:
तो यहाँ मैं क्या किया
<html>
<head>
<script>
function iFrameOn(){
richTextField.document.designMode = 'On';
}
</script>
</head>
<body onLoad="iFrameOn();">
<!-- Hide(but keep)your normal textarea and place in the iFrame replacement for it -->
<textarea style="display:none;" name="myTextArea" id="myTextArea" cols="100" rows="14"></textarea>
<iframe name="richTextField" id="richTextField" style="border:#000000 1px solid; width:100px; height:20px;">
</iframe>
<!--End replacing your normal textarea -->
</p>
<script>
function ReplaceWords(){
var textfield = document.getElementById("richTextField");
textfield.contentWindow.document.body.onkeyup = function(e){
var content = textfield.contentWindow.document.body.innerHTML;
var Fixed_Content = content.replace("hey", "yo");
$(document).ready(function() {
$('#richTextField').contents().find('body').html(Fixed_Content);
});
};
};
ReplaceWords();
</script>
</body>
</html>
सवाल यह है कि है फिर।
अपडेट: मूल रूप से यह फोकस में नहीं है, यह iframe के अंदर छिपा हुआ है इसलिए मैं document.designMode = 'On';
का उपयोग करता हूं।
मैंने पोस्ट को फिर से अपडेट किया है, इस तरह यह शुरुआत से ही होना चाहिए था।
का अनुरोध लिंक के रूप में jsfiddle रहे हैं: https://jsfiddle.net/tqf3v2sk/8/
आप एक अतिरिक्त 'है,'। आप इसे परिभाषित करने के आगे 'हैलो()' कहते हैं। आप या तो 'onmouseenter' ईवेंट का उपयोग कर सकते हैं या ऐसा करने के लिए अंतराल सेट कर सकते हैं। एक उदाहरण दिखा रहा है महान होगा। –
धन्यवाद, लेकिन माउसेंटर पर यह लिखते समय रीयलटाइम नहीं होगा। – Frederik
यदि मैं आपको आईफ़्रेम में सही समझता हूं तो आप इनपुट फ़ील्ड लोड करते हैं और जब उपयोगकर्ता प्रकार आप दर्ज टेक्स्ट के कुछ हिस्सों को प्रतिस्थापित करने का प्रयास करते हैं। यदि हां, तो आप केवल इनपुट फ़ील्ड मान को अद्यतन के साथ प्रतिस्थापित कर सकते हैं और न ही HTML टैग को प्रतिस्थापित कर सकते हैं। क्योंकि वर्णित मुद्दे के पूरे दस्तावेज़ प्रतिस्थापन कारण। अन्यथा यदि टैग प्रतिस्थापन बिल्कुल वही है जो आपको चाहिए, तो आप सामग्री परिवर्तन के बाद इनपुट फ़ील्ड पर फ़ोकस विधि को कॉल कर सकते हैं। –