Zastanawiam się, czy można zastąpić nagłe słowa wewnątrz iframe
.JavaScript za pomocą metody replace wewnątrz iframe
Użyłem jQuery do zmiany zawartości wewnątrz iframe
z tą samą zawartością, ale z zamiennikami. Problem polega na tym, że "kursor resetuje się" na początku pola wejściowego, więc musisz pisać od początku.
Więc oto co zrobiłem
<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>
Pytanie brzmi: czy można zastąpić niektóre treści wewnątrz iframe bez resetów kursora, ponieważ nie jest to doceniane podczas pisania i po prostu zaczyna się od początku jeszcze raz.
Aktualizacja: Zasadniczo nie jest to obszar tekstowy, który jest ostry, jest ukryty wewnątrz elementu iframe, dlatego używam document.designMode = 'On';
.
Mam zaktualizowany post ponownie, tak powinien być od samego początku.
zgodnie z wnioskiem link jsfiddle: https://jsfiddle.net/tqf3v2sk/8/
Masz dodatkowy ';'. Wywołujesz 'Hello()' przed zdefiniowaniem go. Możesz użyć zdarzenia 'onmouseenter' lub ustawić interwał, aby to zrobić. Pokazanie przykładu byłoby świetne. –
Dzięki, ale na mouseenter nie byłoby czasu rzeczywistego, podczas pisania. – Frederik
Jeśli zrozumiałem cię poprawnie w iframe, ładujesz pole wejściowe, a gdy typy użytkownika próbujesz zastąpić niektóre części wprowadzonego tekstu. Jeśli tak, to możesz po prostu zamienić wartość pola wejściowego na zaktualizowaną, nie zastępując tagów html. Ponieważ cała przyczyna wymiany dokumentu opisanego problemu. W przeciwnym razie, jeśli zastępowanie znaczników jest dokładnie tym, czego potrzebujesz, możesz wywołać metodę skupienia w polu wprowadzania po zmianie treści. –