Manera inusual de mejorar PF con EclipseCrossword

El mantenimiento del sitio y su promoción es un asunto responsable que debe preparar.

Cada webmaster y optimizador debe aprender qué es lo que más influye en la posición de su recurso y tratar de fortalecer estos factores mediante diversas técnicas y trucos

Los algoritmos de los motores de búsqueda han considerado durante mucho tiempo los factores de comportamiento como uno de los indicadores más importantes. Por lo tanto, debe descubrir cómo captar la atención de los visitantes y hacer que pasen mucho tiempo en las páginas.

Para esto, ya se han inventado muchas acciones originales, incluida la colocación del contenido original.

Una forma inusual de mejorar el PF, que es adecuada para cada sitio. Absolutamente en todos los recursos puede agregar crucigramas pequeños e interactivos, con 5-6 tareas. Sus visitantes estarán entusiasmados de responder preguntas y los factores de comportamiento mejorarán debido a su retraso en la página.

Pero para agregar un conveniente crucigrama en su sitio web, tendrá que trabajar duro. Desafortunadamente, no hay programas ideales ni servicios en línea para esto, por lo que tendrá que usar métodos alternativos.

Primero necesitas descargar un programa simple. Este es un software especial a través del cual puede especificar algunas preguntas y respuestas, y luego obtener un crucigrama preparado.

El programa es bastante popular, pero no tiene localización en ruso, por lo que las instrucciones visuales de uso son útiles para usted:

El programa le dará opciones para crear un crucigrama, y ​​puede elegir la mejor opción. Después de eso, debe ir a la pestaña para guardar la página web y seleccionar el primer elemento:

Descárguelo en su computadora y ábralo con cualquier editor, por ejemplo, un bloc de notas. Esto es necesario para realizar cambios en el código que ayudará a ruzificar su crucigrama.

Encuentre la línea en el código Copyright 2000-2007 Green Eclipse e inserte el código detrás de él.

// EclipseCrossword (C) Copyright 2000-2007 Green Eclipse.
// www. eclipsecrossword. com

var BadChars = "` ~! @ ^ * () _ = {[}] \ | :; \ "',. . . /? ";

var TableAcrossWord, TableDownWord;
var CurrentWord, PrevWordHorizontal, x, y, i, j;
var CrosswordFinished, Initialized;

// Revise el rompecabezas.
if (document. GetElementById ("waitmessage")! = Null)
{
document. GetElementById ( "waitmessage"). innerHTML = "Espere mientras se carga el crucigrama ...";

// Variables actuales del juego
CurrentWord = -1;
PrevWordHorizontal = false;

// Cree las matrices de celda a palabra.
TableAcrossWord = new Array (CrosswordWidth);
para (var x = 0; x. CrossWidth; x ++) TableAcrossWord [x] = nueva matriz (CrosswordHeight);
TableDownWord = nueva matriz (CrosswordWidth);
para (var x = 0; x. CrosswordWidth; x ++) TableDownWord [x] = new Array (CrosswordHeight);
para (var y = 0; y. CrosswordHeight; y ++)
para (var x = 0; x. CrosswordWidth; x ++)
{
TableAcrossWord [x] [y] = -1;
TableDownWord [x] [y] = -1;
}

// Primero , agrega el horizontal Palabras al rompecabezas.
para (var i = 0; i. = LastHorizontalWW; i ++)
{
x = WordX [i];
y = WordY [ i];
para (var j = 0; j. WordLength [i]; j ++)
{
TableAcrossWord [x + j] [y] = i;
}
}

// Segundo, agregue las palabras verticales al rompecabezas.
para (var i = LastHorizontalWord + 1; i. Words; i ++)
{
x = WordX [i];
y = WordY [i];
para (var j = 0; j. WordLength [i]; j ++)
{
TableDownWord [x] [y + j] = i ;
}
}

// Ahora, inserte el HTML de la fila en la tabla.
para (var y = 0; y. CrosswordHeight; y ++)
{
documento. writeln (". tr.");
para (var x = 0; x. CrosswordWidth; x ++)
{
if (TableAcrossWord [x] [y] . = 0 || TableDownWord [x] [y]. = 0)
document. write (". td id = \" c "+ PadNumber (x) + PadNumber (y) +" \ "class = \" ecw-box ecw-boxnormal_unsel \ "onclick = \" SelectThisWord (event); \ ". nbsp;. / td. ");
else
document. escribir (". td .. / td.");
}
documento. writeln (". / tr.");
}

// finalmente el mensaje de presentación.
Inicializado = verdadero;
documento. getElementById ("waitmessage"). estilo display = "none";
documento. getElementById ("crucigrama"). estilo display = "block";
}

// ----
// Controladores de eventos

// Se levanta cuando se presiona una tecla el cuadro de entrada de la palabra.
función WordEntryKeyPress (evento)
{
si (CrosswordFinished) regresa;
// Haga clic aquí.
si (CurrentWord. = 0 .. Event. KeyCode == 13) OKClick ();
}

// ----
// Funciones de ayuda

// Llamado cuando estamos listos para comenzar el crucigrama.
función BeginCrossword ()
{
if (Initialized)
{
document. getElementById ("welcomemessage"). estilodisplay = "";
document. getElementById ("checkbutton"). estilo display = "";
}
}

// Devoluciones.
función ContieneBadChars (theirWord)
{
para (var i = 0; i. TheirWord. Length; i ++)
if (BadChars. IndexOf (theirWord. charAt (i)). = 0) devuelve true;
devuelve false;
}

// Pads.
función PadNumber (número)
{
si (número. 10)
devuelve "00" + número;
else if (número. 100)
devuelve "0" + número;
o bien
devuelve "" + número;
}

// Devuelve la celda de la tabla en un determinado par de coordenadas.
función CellAt (x, y)
{
documento de devolución. getElementById ("c" + PadNumber (x) + PadNumber (y));
}

// Anula la selección de la palabra actual, si hay una palabra seleccionada. NO cambia el valor de CurrentWord. Función
DeselectCurrentWord ()
{
si (CurrentWord. 0) regresa;
var x, y, i;

documento getElementById ("answerbox"). estilo display = "none";
ChangeCurrentWordSelectedStyle (false);
CurrentWord = -1;

}

// Cambia el estilo de las celdas en la palabra actual
función ChangeWordStyle (WordNumber, NewStyle)
{
if (WordNumber. 0) return;
var x = WordX [WordNumber];
var y = WordY [WordNumber];

if (WordNumber. = LastHorizontalWord)
for (i = 0; i. WordLength [WordNumber]; i ++)
CellAt (x + i, y). className = NewStyle;
else
para (i = 0; i. WordLength [WordNumber]; i ++)
CellAt (x, y + i). className = NewStyle;
}

// El formulario entre el formulario seleccionado y el no seleccionado.
función ChangeCurrentWordSelectedStyle (IsSelected)
{
if (CurrentWord. 0) return;
var x = WordX [CurrentWord];
var y = WordY [CurrentWord];

if (CurrentWord. = LastHorizontalWord)
para (i = 0; i. WordLength [CurrentWord]; i ++)
CellAt (x + i, y). className = CellAt (x + i, y). className. reemplazar (¿IsSelected? "_unsel": "_sel", IsSelected? "_sel": "_unsel");
else
for (i = 0; i. WordLength [CurrentWord]; i ++ )
CellAt (x, y + i). className = CellAt (x, y + i). className. reemplazar (¿IsSelected? "_unsel": "_sel", IsSelected? "_sel": "_unsel");
}

// Seleccione el nombre del elemento TD referenciado por el objeto de evento
//, y luego aplicar los estilos según sea necesario.
función SelectThisWord (evento)
{
si (CrosswordFinished) devuelve;
var x, y, i, TheirWord, TableCell;

// Anule la selección de la palabra anterior si se seleccionó una.
documento. getElementById ("welcomemessage"). estilo display = "none";
if (CurrentWord. = 0) OKClick ();
DeselectCurrentWord ();

// Determine la celda y luego la palabra que
// hicieron clic.
var target = (evento. SrcElement? Evento. SrcElement: evento. Objetivo);
x = parseInt (target. Id. Substring 1, 4), 10);
y = parseInt (target. Id. Subcadena (4, 7), 10);

// Si hizo clic en una intersección, esta no es la última vez.
if (TableAcrossWord [x] [y]. = 0 .. TableDownWord [x] [y]. = 0)
CurrentWord = PrevWordHorizontal? TableDownWord [x] [y]: TableAcrossWord [x] [y];
else if (TableAcrossWord [x] [y]. = 0)
CurrentWord = TableAcrossWord [x] [y ];
else if (TableDownWord [x] [y]. = 0)
CurrentWord = TableDownWord [x] [y];

PrevWordHorizontal = (CurrentWord. = LastHorizontalWord);

// Ahora, en esta palabra.
ChangeCurrentWordSelectedStyle (true);

// Luego, prepare el cuadro de respuesta.
x = WordX [CurrentWord];
y = WordY [CurrentWord];
TheirWord = "";
var TheirWordLength = 0;
para (i = 0; i. WordLength [CurrentWord]; i ++)
{
// Encuentre la celda de la tabla apropiada.
if (CurrentWord. = LastHorizontalWord)
TableCell = CellAt (x + i, y);
else
TableCell = CellAt (x, y + i);
//
if (TableCell. InnerHTML! = Null .. TableCell. InnerHTML. Longitud. 0 .. TableCell. InnerHTML! = "". TableCell. InnerHTML. ToLowerCase ()! = ". Nbsp;")
{
TheirWord + = TableCell. innerHTML. toUpperCase ();
TheirWordLength ++;
}
else
{
TheirWord + = ". bull;";
}
}

documento. getElementById ("wordlabel"). innerHTML = TheirWord;
document. getElementById ("wordinfo"). innerHTML = ((CurrentWord. = LastHorizontalWord)? "Horizontalmente,": "Verticalmente") + WordLength [CurrentWord] + "letters (s).";
document. getElementById ("wordclue"). innerHTML = Clue [CurrentWord];
document. getElementById ("worderror"). estilo display = "none";
if (TheirWordLength == WordLength [CurrentWord])
document. getElementById ("wordentry").value = TheirWord;
else
document. getElementById ("wordentry"). value = "";

// Finalmente, muestre el cuadro de respuesta.
documento. getElementById ("answerbox"). estilo display = "block";
intente
{
documento. getElementById ("wordentry"). foco ();
documento. getElementById ("wordentry"). select ();
}
catch (e)
{
}

}

// Llamado cuando el usuario hace clic en el enlace Aceptar.
función OKHaga clic ()
{
var Su Palabra, x, y, i, TableCell;
if (CrosswordFinished) return;
if (document. GetElementById ("okbutton"). Disabled) devuelve;

// Primero, valide la entrada.
TheirWord = document. getElementById ("wordentry"). valor toUpperCase ();
if (TheirWord. length == 0)
{
DeselectCurrentWord ();
return;
}
si (ContieneBadChars (TheirWord))
{
documento. getElementById ("worderror"). innerHTML = "Sólo letras!.";
documento. getElementById ("worderror"). estilo display = "block";
return;
}
if (TheirWord. length. WordLength [CurrentWord])
{
documento. getElementById ("worderror"). innerHTML = "Pocas letras. La palabra consta de" + WordLength [CurrentWord] + "letters (s).";
document. getElementById ("worderror"). estilo display = "block";
return;
}
if (TheirWord. length. WordLength [CurrentWord])
{
documento. getElementById ("worderror"). innerHTML = "Muchas letras. Una palabra consta de" + WordLength [CurrentWord] + "letters (s).";
document. getElementById ("worderror"). estilo display = "block";
return;
}

// Oculta el cuadro de entrada.
x = WordX [CurrentWord];
y = WordY [CurrentWord];
para (i = 0; i. TheirWord. Length; i ++)
{
TableCell = CellAt (x + (CurrentWord. = LastHorizontalWord? I: 0), y + (CurrentWord. LastHorizontalWord? I: 0));
TableCell. innerHTML = Su Palabra. subcadena (i, i + 1);
}
DeselectCurrentWord ();
}

// Se llama cuando el enlace "rompecabezas es" hecho clic
función CheckClick ()
{
var i, j, x, y, UserEntry, ErrorsFound = 0, EmptyFound = 0, TableCell;
if (CrosswordFinished) devolver;
DeselectCurrentWord ();

para (y = 0; y. CrosswordHeight; y ++)
para (x = 0; x. CrosswordWidth; x ++)
if (TableAcrossWord [x] [y]. = 0 || TableDownWord [x] [y]. = 0)
{
TableCell = CellAt ( x, y);
if (TableCell. className == "ecw-box ecw-boxerror_unsel") TableCell. className = "ecw-box ecw-boxnormal_unsel";
}

para (i = 0; i. Words; i ++)
{
/ / Obtenga su palabra para esta palabra.
UserEntry = "";
para (j = 0; j. WordLength [i]; j ++)
{
if (i. = LastHorizontalWord)
TableCell = CellAt (WordX [i] + j, WordY [i]);
else
TableCell = CellAt (WordX [i], WordY [i ] + j);
if (TableCell. innerHTML. length. 0 .. TableCell. innerHTML. toLowerCase ()! = ". nbsp;")
{
UserEntry + = TableCell. innerHTML. toUpperCase ();
}
else
{
UserEntry = "";
EmptyFound ++;
break;
}
}
// Si esta palabra no coincide, es un error.
if (HashWord (UserEntry)! = Answer Hash [i]. UserEntry. Length. 0)
{
ErrorsFound ++;
ChangeWordStyle (i , "ecw-box ecw-boxerror_unsel");
}
}

// Si solo puede marcar una vez, deshabilite las cosas prematuramente.
if (OnlyCheckOnce)
{
CrosswordFinished = true;
document. getElementById ("checkbutton"). estilo display = "none";
}

// // si se encontraron errores, simplemente salga ahora.
si (ErrorsFound. 0 .. EmptyFound. 0)
document. getElementById ("welcomemessage"). innerHTML = ErrorsFound + (ErrorsFound. 1? "errors": "errors") + "y" + EmptyFound + (EmptyFound. 1? "palabras que quedan para adivinar": "word incompleta era") + ".";
else if (ErrorsFound. 0)
document. getElementById ("welcomemessage"). innerHTML = ErrorsFound + (ErrorsFound. 1? "error were": "error was") + "found.";
else if (EmptyFound. 0)
document. getElementById ("welcomemessage"). innerHTML = "No hay errores, pero" + EmptyFound + (EmptyFound. 1? "palabras dejadas para adivinar": "word left for resolver") + ".";

if (ErrorsFound + EmptyFound. 0)
{
documento. getElementById ("welcomemessage"). estilo display = "";
return;
}

// ¡Terminaron el rompecabezas!
CrosswordFinished = true;
document . getElementById ("checkbutton"). estilo display = "none";
documento. getElementById ("felicitaciones"). estilo display = "block";
document. getElementById ("welcomemessage"). estilo display = "none";
}

// Llamado cuando se hace clic en el enlace "trucos".
función CheatClick ()
{
si (CrosswordFinished) devuelve;
var OldWord = CurrentWord;
document. getElementById ("wordentry").value = Word [CurrentWord];
OKClick ();
ChangeWordStyle (OldWord, "ecw-box ecw-boxcheated_unsel");
}

// Devuelve un hash unidireccional para una palabra.
función HashWord (Word)
{
var x = (Word. CharCodeAt (0) * 719)% 1138;
var Hash = 837 ;
var i;
para (i = 1; i. = Word. Length; i ++)
Hash = (Hash * i + 5 + (Word. CharCodeAt (i - 1) - 64) * x)% 98503;
return Hash;
}

// -.
. / script.

. / mesa . / td.

. td valign = "top" style = "padding-left: 1em;".

. div class = "ecw-copyright".
. a href = "http: // www. eclipsecrossword. com /" target = "_ blank" style = "font-weight: bold;". EclipseCrossword. / a . copia 2000-2010
. / div.

. div id = "welcomemessage" class = "ecw-answerbox" style = "display: none;".
. h3 Bienvenido / h3.
. p. Haga clic en el crucigrama para comenzar. . / p.
. / div.

. div id = "answerbox" class = "ecw-answerbox" style = "display: none;".
. h3 id = "wordlabel" class = "ecw-wordlabel". . nbsp; / h3.
. div id = "wordinfo" class = "ecw-wordinfo". . / div.
. div id = "wordclue" class = "ecw-cluebox". . / div.
. div style = "margin-top: 1em;".
. input class = "ecw-input" id = "wordentry" type = "text" size = "24 ″ style =" font-weight: bold; text-transform: mayúsculas; "onkeypress =" WordEntryKeyPress (event) "onchange =" WordEntryKeyPress (event) "autocomplete =" off "/.
. / div.
. div id = "worderror" class = "ecw-worderror" .. / div.

. table border = "0 ″ cellspacing =" 0 ″ cellpadding = "0 ″ width =" 100% "style =" margin-top : 1em; ". . tbody . tr. . td
. / td. . td align = "right".
. button id = "okbutton" type = "button" class = "ecw-input ecw-button" onclick = "OKClick ();" style = "font-weight: bold;".
OK. / botón . nbsp;
. button id = "cancelbutton" type = "button" class = "ecw-input ecw-button" onclick = "DeselectCurrentWord ();".
Finalizar. / botón
. / td. . / tr. . / tbody . / mesa

. / div.

. div id = "congratulations" class = "ecw-answerbox" style = "display: none;".
. h3 Felicidades / h3.
. p. Has resuelto completamente el crucigrama. . / p.
. / div.

. / td. . / tr. . / mesa

. div style = "margin-top: 1em;".
. button id = "checkbutton" type = "button" onclick = "CheckClick ();" style = "display: none;".
Compruebe si hay errores. / botón
. / div.

. script language = "JavaScript" type = "text / javascript". . ! -
BeginCrossword ();
// -.
. / script.

. / cuerpo. . / html.

Recuerde guardar estos cambios y después puede agregar el script a cualquier parte de su recurso.

Sí, para agregar un crucigrama a su sitio, tendrá que realizar muchas acciones, pero vale la pena. Además, para mejorar la eficacia de este truco, puede otorgar pequeños premios a quienes respondan todas las preguntas a continuación. Por ejemplo, enviando pequeñas cantidades de dinero al teléfono.

Buscar

Artículos relacionados