Ваш reverser_service.html
работает. Вам нужно заменить data.payload
на data
на main.html
:
var newItem = '\n\t<li>' + (data || '') + '</li>';
Но давайте предположим, что вы можете редактировать только файл reverser_service.html
.
в окне Метод .postMessage () позволяет создать связь между объектами Window. В этом случае, когда целью является window.parent
, вы будете передавать данные из подкадра (<iframe>
, <object>
, <frame>
) в родительский объект.
postMessage (message, [Transfer]) имеет параметр message
, который доставляет данные. Это может быть любое значение или объект JavaScript.
В файле parent.html
вы можете увидеть, как он пытается получить строку из data.payload
. Если он не может найти ничего, он будет undefined , и он ничего не добавляет ("") между <li>
тегами. Итак, попробуйте создать объект со свойством «полезная нагрузка», в котором хранится joinArray
, и вернуть этот объект с window.parent
:
<!DOCTYPE html>
<html>
<body>
<input type="text" id="myInput" >
<button onclick="reverseString()">submit</button>
<script>
function reverseString() {
var str = document.getElementById("myInput").value;
var splitString = str.split("");
var reverseArray = splitString.reverse();
var joinArray = reverseArray.join("");
const payload = {"payload":joinArray};
window.parent.postMessage(payload, "*" )
}
</script>
</body>
</html>
main.html
при отправке различных строк:
- ! Skrow tI :-)
- 3 # rebmun tseT
- 2 # rebmun tseT
- 1 # rebmun tseT