Como usar o JavaScript para preencher um formulário em outra página

Eu estou tentando preencher os campos em um formulário através de JavaScript. O problema é que eu só sei como executar o JavaScript na página atual, então não posso redirect para o formulário e executar o código a partir dele. Estou hesitante em usar este termo, mas a única frase que me vem à mente é o script entre sites. O código que estou tentando executar está abaixo.

 window.location = "http://www.pagewithaform.com"; loaded(); //checks to see if page is loaded. if not, checks after timeout. function loaded() { if(window.onLoad) { //never executes on new page. the problem setTitle(); } else { setTimeout("loaded()",1000); alert("new alert"); } } //sets field's value function setTitle() { var title = prompt("Field Info","Default Value"); var form = document.form[0]; form.elements["fieldName"].value = title; }  

Eu não tenho certeza se isso é possível. Eu também estou aberto a outras ideias, como PHP. Obrigado.

EDIT: A segunda página é um formulário do SharePoint. Não consigo editar nenhum código no formulário. O objective é escrever um script que preencha a maioria dos campos porque 90% deles são estáticos.

Você está tentando manter o estado entre as páginas. Convencionalmente, existem duas maneiras de manter o estado:

  • Estado da loja em cookies
  • Estado de armazenamento na cadeia de consulta

De qualquer maneira, sua primeira página deve persistir (para cookies ou cadeia de consulta) e a outra página deve – separadamente – restaurar o estado. Você não pode usar o mesmo script nas duas páginas.

Exemplo: usando cookies

Usando cookies, a primeira página teria que escrever todos os dados do formulário que você precisa na próxima página para os cookies:

    Maintaining State With Cookies   
Setting cookies and redirecting...

… e a segunda página leria esses cookies e preencheria os campos do formulário com eles:

    Maintaining State With Cookies   

Exemplo: usando a string de consulta

No caso de usar a string de consulta, a primeira página includeia apenas a string de consulta no URL de redirecionamento, assim:

    Maintaining State With The Query String   
Redirecting...

… enquanto o formulário então analisaria a string de consulta (disponível em JavaScript via window.location.search – prefixado com um ? ):

    Maintaining State With The Query String   

Exemplo: com um identificador de fragment

Há mais uma opção: como o estado está sendo mantido estritamente no lado do cliente (não no lado do servidor), você poderia colocar as informações em um identificador de fragment (a parte “hash” de um URL).

O primeiro script é muito semelhante ao exemplo da string de consulta acima: o URL de redirecionamento inclui apenas o identificador de fragment. Vou reutilizar a formatação de string de consulta por conveniência, mas observe o # no lugar onde a ? costumava ser:

    Maintaining State With The Fragment Identifier   
Redirecting...

… e então o formulário tem que analisar o identificador de fragments etc:

    Maintaining State With The Fragment Identifier   

E se você não pode editar o código para a página de formulário

Tente um script greasemonkey.

É um bom lugar para usar cookies

Ex: De quirksmode.org

 function createCookie(name,value,days) { if (days) { var date = new Date(); date.setTime(date.getTime()+(days*24*60*60*1000)); var expires = "; expires="+date.toGMTString(); } else var expires = ""; document.cookie = name+"="+value+expires+"; path=/"; } function readCookie(name) { var nameEQ = name + "="; var ca = document.cookie.split(';'); for(var i=0;i < ca.length;i++) { var c = ca[i]; while (c.charAt(0)==' ') c = c.substring(1,c.length); if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length); } return null; } 

e uma nota lateral, você pode usar o evento onload para saber quando a página está pronta

  

Se fosse possível manipular sites de destino sem access aos methods system / source / mitm do alvo, isso seria realmente uma via aberta para malware em combinação com o clickjacking! Eu não quero que o seu script diga a forma do meu banco o que fazer. 😉

Use algum tipo de ferramentas de automação como o AutoIt (www.autoitscript.com) para essa finalidade. Fácil de aprender e tem boa integração de formulários. Se o padrão não for suficiente, procure por UDFs como winhttp para AutoIt.