código do programa
função openEgg(tipo){
window.showModalDialog('../EggPlay.aspx?type='+type,'','dialogHeight: 600px; dialogWidth: 800px; borda: elevada; centro: Sim; ajuda: Não; redimensionável: Não; status: Não; rolar:Não;');
}
Javascript possui muitos métodos integrados para gerar caixas de diálogo, como window.alert(), window.confirm(), window.prompt(), etc. No entanto, o IE fornece mais métodos para oferecer suporte a caixas de diálogo. Tal como:
showModalDialog() (suportado pelo IE 4+)
showModelessDialog() (suportado pelo IE 5+)
O método window.showModalDialog() é usado para criar uma caixa de diálogo modal que exibe conteúdo HTML. Por ser uma caixa de diálogo, ela não possui todas as propriedades de uma janela geralmente aberta com window.open().
O método window.showModelessDialog() é usado para criar uma caixa de diálogo sem janela restrita que exibe conteúdo HTML.
Quando usamos showModelessDialog() para abrir uma janela, não precisamos usar window.close() para fechá-la. Quando ela é aberta em modo não modal [IE5], a janela que abre a caixa de diálogo ainda pode executar outras funções. operações, ou seja, a caixa de diálogo nem sempre está aberta. É o foco superior e fecha automaticamente quando a URL da janela que a abre muda. A caixa de diálogo modal [IE4] sempre tem foco (o foco não pode ser removido até que seja fechado). A caixa de diálogo modal está vinculada à janela que a abriu, portanto, quando abrimos outra janela, seu relacionamento de link ainda é preservado e oculto sob a janela ativa.
Como usar:
vReturnValue = window.showModalDialog(sURL [, vArgumentos] [, sFeatures])
vReturnValue = window.showModelessDialog(sURL [, vArgumentos] [, sFeatures])
Descrição do parâmetro:
URL
Parâmetro obrigatório, tipo: string. Usado para especificar o URL do documento a ser exibido na caixa de diálogo.
vArgumentos
Parâmetro opcional, tipo: variante. Usado para passar parâmetros para a caixa de diálogo. O tipo de parâmetros passados não é limitado, incluindo arrays, etc. A caixa de diálogo obtém os parâmetros passados através de window.dialogArguments.
Características
Parâmetro opcional, tipo: string. Usado para descrever a aparência da caixa de diálogo e outras informações, você pode usar um ou mais dos seguintes itens, separados por ponto e vírgula ";".
dialogHeight é a altura da caixa de diálogo, não inferior a 100px. A unidade padrão de dialogHeight e dialogWidth no IE4 é em, enquanto no IE5 é px. Por conveniência, ao definir uma caixa de diálogo modal, use px como unidade.
dialogWidth: largura da caixa de diálogo.
dialogLeft: Distância do lado esquerdo da área de trabalho.
dialogTop: distância da área de trabalho.
center: {sim | não | 1 | 0}: Se a janela está centralizada, o padrão é sim, mas a altura e a largura ainda podem ser especificadas.
ajuda: {sim | não 1 | 0}: Se deseja exibir o botão de ajuda, o padrão é sim.
redimensionável: {sim | não | 1 | 0} [IE5+]: Se pode ser redimensionado. O padrão é não.
status: {sim | não 1 | 0} [IE5+]: Se deseja exibir a barra de status. O padrão é sim[Modal] ou não[Modal].
scroll:{ sim | não | 0 | ativado | desativado }: Indica se a caixa de diálogo exibe barras de rolagem. O padrão é sim.
Existem também vários atributos usados em HTA, que geralmente não são usados em páginas web comuns.
dialogHide:{ sim | não | 0 | ativado | desativado }: se a caixa de diálogo está oculta durante a impressão ou visualização da impressão. O padrão é não.
edge:{ afundado | elevado }: Especifica o estilo da borda da caixa de diálogo. O padrão é aumentado.
sem adornos:{ sim | não | 0 | ativado | desativado }: o padrão é não.
Passe os parâmetros:
Para passar parâmetros para a caixa de diálogo, eles são passados através de vArguments. Não há limite de tipo. Para tipos de string, o comprimento máximo é de 4.096 caracteres. Você também pode passar objetos, por exemplo:
código de programa
test1.htm
====================
<roteiro>
var mxh1 = new Array("mxh","net_lover","Mencius Capítulo E")
var mxh2 = window.open("about:blank","window_mxh")
//Passa array para caixa de dialogo
window.showModalDialog("test2.htm",mxh1)
//Passa o objeto janela para a caixa de diálogo
window.showModalDialog("test3.htm",mxh2)
</script>
teste2.htm
====================
<roteiro>
var a = window.dialogArguments
alert("Os parâmetros que você passou são: " + a)
</script>
teste3.htm
====================
<roteiro>
var a = window.dialogArguments
alert("O parâmetro que você passou é um objeto de janela, nome: " + a.name)
</script>
As informações podem ser retornadas para a janela que abriu a caixa de diálogo através de window.returnValue e, claro, também pode ser um objeto. Por exemplo:
código do programa
teste4.htm
===================
<roteiro>
var a = window.showModalDialog("test5.htm")
for(i=0;i<a.length;i++) alerta(a[i])
</script>
teste5.htm
===================
<roteiro>
função enviarPara()
{
var a=novo Array("a","b")
janela.returnValue=a
janela.fechar()
}
</script>
<corpo>
<formulário>
<input value="Return" type=button onclick="sendTo()">
</form>
PERGUNTAS FREQUENTES:
1. Como enviar em uma caixa de diálogo modal sem abrir uma nova janela?
Se o seu navegador for IE5.5+, você poderá usar um iframe com um atributo de nome na caixa de diálogo e poderá definir o destino como o nome do iframe ao enviar. Para IE4+, você pode usar um quadro com altura 0: exemplo,
código do programa
teste6.htm
===================
<roteiro>
window.showModalDialog("test7.htm")
</script>
teste7.htm
===================
alerta if(window.location.search)(window.location.search)
<frameset rows="0,*">
<frame src="/blog/about:blank">
<frame src="test8.htm">
</frameset>
test8.htm
===================
<form target="_self" método="get">
<nome de entrada=txt valor="teste">
<tipo de entrada = enviar>
</form>
<roteiro>
alerta if(window.location.search)(window.location.search)
</script>
2. Os parâmetros podem ser passados diretamente para a caixa de diálogo através de http://servername/virtualdirname/test.htm?name=mxh ?
A resposta é não. Mas é possível no quadro.