Estoy intentando seleccionar el campo de correo electrónico en este formulario de reserva de iframe. Eventualmente quiero hacer algo más con el campo, pero por ahora como prueba, solo quiero seleccionar el elemento y cambiar el marcador de posición.
Obteniendo este error, así que no lo estoy seleccionando correctamente: Error de tipo no capturado: no se puede establecer la propiedad 'marcador de posición' de nulo en HTMLButtonElement.changeCopy
Puede ver una versión en vivo de mi código aquí y ver el error en la consola cuando hace clic en el botón en la parte superior: https://finnpegler.github.io/cart_recover/
También he incluido el código como un fragmento a continuación, pero arroja un error diferente relacionado con los marcos de origen cruzado.
var iframe = document.getElementById("booking-widget-iframe");
var field = iframe.contentWindow.document.querySelector("booking[email]");
function changeCopy() {
field.placeholder = "hello";
}
document.getElementById("button").addEventListener("click", changeCopy)
<!DOCTYPE html>
<html lang="en">
<head>
<title>Test site for Cart Recover Tool</title>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" media="screen" href="stylesheet.css" />
<link href="https://fonts.googleapis.com/css?family=Bree+Serif|Open+Sans&display=swap" rel="stylesheet">
<link rel="icon" href="favicon.ico">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
Clicking this button should change the placeholder text in the email field below
<button id = "button">Click</button>
</body>
<script src="https://bettercleans.launch27.com/jsbundle"></script><iframe id="booking-widget-iframe" src="https://bettercleans.launch27.com/?w_cleaning" style="border:none;width:100%;min-height:2739px;overflow:hidden" scrolling="no"></iframe>
<script src="script.js"></script>