Es mostren els missatges amb l'etiqueta de comentaris javascript. Mostrar tots els missatges
Es mostren els missatges amb l'etiqueta de comentaris javascript. Mostrar tots els missatges

diumenge, 18 de març del 2012

Com evitar la redirecció a "blogger.com.es"

Aquest matí m'he trobat que Google ja havia aplicat la redirecció automàtica dels blogs a Blogger.com a blogger.com.es.

".com" és el domini internacional per excel·lència. Posats a triar un domini local, en el cas del bloc d'"Apunts de tecnologia" que des del principi ha fet servir el català i que és militant en l'ús de la nostra llengua, no hi ha cap dubte que el més escaient seria el domini ".cat".

Tanmateix, i mentre no tingui el .cat, com puc recuperar el domini .com?

Doncs bé, aquest canvi de Google ha provocat la reacció immediata de la comunitat blocaire catalana que ja han publicat diferents mètodes per a evitar aquesta redirecció. Des de l'opció més radical, que seria migrar a WordPress, fins a d'altres que mantenen el bloc a Blogspot.

"Apunts de Tecnologia" ha aplicat aquest, que amaga el ".es", publicat per  Xavier Caballé al seu bloc "L'Home Dibuixat".




Enganxat directament des del bloc "L'Home Dibuixat":

  • Aneu a l'edició de la plantilla del bloc:
Edició de la plantilla HTMLEdició de la plantilla HTML
i escolliu l'opció "Modifica l'HTML". Es mostrarà un avís:
Avís de la modificació de la plantillaAvís de la modificació de la plantilla
Feu clic a "Continua" i a l'editor HTML afegiu el codi que s'indica més avall:
Inserir el codi HTML per evitar la redireccióInserir el codi HTML per evitar la redirecció
  • Enganxeu aquest codi immediatament per sota de la marca <head>
<script type="text/javascript">if ((window.location.href.toString().indexOf('.com/'))=='-1'){window.location.href = window.location.href.toString().replace('.blogspot.com.es/','.blogspot.com/ncr/');}</script>




Moltes gràcies, Xavi!

dijous, 31 de març del 2011

Un iframe que es redimensiona amb el contingut

Un truc amb javascript: un iframe que es dimensiona per adaptar-se al seu contingut. L'iframe "resizable".

Important: aquest truc només funciona si el contingut de l'iframe pertany al mateix domini que la pàgina contenidora, l'explicació és que el javascript de la pàgina contenidora ha d'accedir al document de l'iframe, i això només és possible entre pàgines del mateix domini.


per a veure com funciona, en un servidor web de proves crearé dues pàgines:

1. Una página amb un text llarg, d'unes quantes línies (el lorem ipsum és un gran candidat...) que serà la que posaré dins de l'iframe.

2. Una pàgina contenidora com aquesta:

<html>
    <head>
    <meta
        content="text/html; charset=ISO-8859-1"     
        http-equiv="content-type">
    <title>prova1.html</title>
    <script language="javascript">
    function MostraMissatge() {
        var v_ifr = document.getElementById("IDIframe");
        v_ifr.style.height = (v_ifr.contentWindow.document.body.scrollHeight + 25) + "px";
        return false;
    }
    </script>
    </head>
    <body>
    <iframe 
        src="pagina.html" 
        id="IDIframe" 
        height="300" width="300" 
        onload="MostraMissatge()">
    </iframe>
</body>
</html>


I, com podreu comprovar, funciona. ;-)

dimecres, 22 de desembre del 2010

com obrir una finestra de navegador passant-li paràmetres amb submit i post

Un truc amb javascript: com obrir una finestra de navegador passant-li paràmetres amb method="post".

Per exemple, suposem la següent pàgina PHP que recupera els paràmetres amb $_POST. Com ho fem per que  s'executi i rebi els paràmetres dins d'una finestra oberta amb open.window?

<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="content-type">
<title>pagina2</title>
</head>
<body
style="margin-left: 222px; width: 351px; margin-top: 58px; height: 213px;">
<big style="font-weight: bold;"><span
style="font-family: Helvetica,Arial,sans-serif;">Mostra els resultats</span></big><br>
<br>
<span style="font-family: Helvetica,Arial,sans-serif;">Text 1:</span>&nbsp;
<?php echo $_POST["v_Text1"] ?><br>
<br>
<span style="font-family: Helvetica,Arial,sans-serif;">Text 2:</span>&nbsp;
<?php echo $_POST["v_Text2"] ?><br>
<br>
<br>
<a style="font-family: Helvetica,Arial,sans-serif;"
href="javascript:window.close()">Tanca</a><br>
</body>
</html>


Podem invocar la pàgina anterior dins d'una finestra oberta amb open.window i passant-li arguments amb POST amb la següent tècnica:
1 - creant la finestra de destinació en l'event OnSubmit del formulari
2 - indicant en l'Action del formulari la pàgina a la que volem accedir
3 - indicant en el Target del formulari que la destinació és la finestra creada a l'OnSubmit

Per exemple, així:

<html>
<head>
<script language="javascript">
function ObreFinestra() {
var v_Config="top=50px,left=50px,width=640px,height=480px,resizable=yes";
var v_FinestraProva = window.open("", "wndFinestraProva", v_Config);
}

</script>
</head>
<body>
<form
style="margin-left: 172px; width: 508px; margin-top: 76px; height: 161px;"
onsubmit="javascript:ObreFinestra();" target="wndFinestraProva"
method="post" action="pagina2.php"
name="Prova"> <big><span
style="font-family: Helvetica,Arial,sans-serif;"></span></big><span
style="font-family: Helvetica,Arial,sans-serif;"><big
style="font-weight: bold;">Obrir formulari amb
post en una finestra separada</big><br>
<br>
Text 1: <input name="v_Text1"><br>
Text 2: <input name="v_Text2"><br>
<br>
<input name="v_Submit" value="Enviar" type="submit"> <input
name="v_Reset" value="Esborrar" type="reset"><br>
</span></form>
</body>
</html>

dijous, 12 d’agost del 2010

Un applet invisible / 11 setembre 2008

Un applet invisible

Un applet java invisible pot ser quelcom útil. En aquest apunt poso un exemple molt senzill d'applet invisible amb l'HTML que l'utilitza.

import java.applet.*;

public class AppletGeneric extends Applet {
  String sNom;
  String sCognom1;
  String sCognom2;
  String sNumTelefon;

  //Construct the applet

  public
AppletGeneric() {
  }

  //Initialize the applet
  public void init() {
  }
  //Start the applet

  public void start() {
  }
  //Stop the applet

  public void stop() {
  }
  //Destroy the applet

  public void destroy() {
  }

  //Get Applet information
  public String getAppletInfo()
  {
    return "Applet Information";
  }

  public void setNom(String sNom) {this.sNom = sNom;}
  public void setCognom1(String s
Cognom1) {this.sCognom1 = sCognom1;}
  public void set
Cognom2(String sCognom2) {this.sCognom2 = sCognom2;}
  public void set
NumTelefon(String sNumTelefon) {this.sNumTelefon = sNumTelefon;}
  public String get
Nom() {return sNom;}
  public String get
Cognom1() {return sCognom1;}
  public String get
Cognom2() {return sCognom2;}
  public String get
NumTelefon() {return sNumTelefon;}
}


I la pàgina HTML que l'invoca:

<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<TITLE>
HTML Test Page
</TITLE>
<script language="javascript">
function Canviar() {
  document.TestApplet.setNom(document.ProvaApplet.sNom_1.value);
  document.TestApplet.setCognom1(document.ProvaApplet.sCognom1_1.value);
  document.TestApplet.setCognom2(document.ProvaApplet.sCognom2_1.value);
  document.TestApplet.setNumTelefon(document.ProvaApplet.sNumTelefon_1.value);

  ProvaApplet.sNom_2.value=document.TestApplet.getNom();
  ProvaApplet.sCognom1_2.value=document.TestApplet.getCognom1();
  ProvaApplet.sCognom2_2.value=document.TestApplet.getCognom2();
  ProvaApplet.sNumTelefon_2.value=document.TestApplet.getNumTelefon();

}
</script>

</HEAD>
<BODY>
Applet invisible.<BR>
<APPLET
  CODEBASE = "."
  CODE     = "AppletGeneric.class"
  NAME     = "TestApplet"
  WIDTH    = 0
  HEIGHT   = 0
  HSPACE   = 0
  VSPACE   = 0
  ALIGN    = middle
>
</APPLET>

<applet code="" width="" height="">
</applet>


<FORM NAME="ProvaApplet" METHOD="" ACTION="">
  Nom  <input type="text" name="sNom_1"><br>
  Cognom1 <input type="text" name="sCognom1_1"><br>
  Cognom2 <input type="text" name="sCognom2_1"><br>
  Número telefono <input type="text" name="sNumTelefon_1"><br>
<hr>
  Nom  <input type="text" name="sNom_2"><br>
  Cognom1 <input type="text" name="sCognom1_2"><br>
  Cognom2 <input type="text" name="sCognom2_2"><br>
  Número telefon <input type="text" name="sNumTelefon_2"><br>
<hr>
<input type="button" value="Canviar" onclick="Canviar()">
</FORM>
</BODY>
</HTML>

A l'Internet Explorer, depenent del nivell de seguretat, demanarà permís per a executar el codi de l'applet.

L'applet java és descarrega com un .class. Una alternativa seria comprimir-lo i descarregar-lo com un .jar.

Com inicialitzar Dates amb Javascript / 03 setembre 2008

03 setembre 2008

Com inicialitzar Dates amb Javascript

Exemple de com inicialitzar una data amb Javascript, o sigui, com obtenir un objecte Date que es refereixi a la data que vulguem.
// La data que vull obtenir dd/mm/aaaa
var vStrAvui = "02/09/2008";    

// Separo dia, mes i any
var vTokenAvui = vStrAvui.split("/");
var vAvuiDia = vTokenAvui[0];
var vAvuiMes = vTokenAvui[1];
var vAvuiAny = vTokenAvui[2];

// Obtinc un objecte Date
var vAvui = new Date();  

// I l'inicialitzo
vAvui.setFullYear(parseFloat(vAvuiAny), parseFloat(vAvuiMes) - 1, parseFloat(vAvuiDia));



Comentaris:
Per què millor així que no pas inicialitzant amb vAvui = new Date(
"02/09/2008"); ?
perquè amb new Date(string_data)  i depenent de la versió de navegador, la data es converteix segons el format "dd/mm/aaaa" o segons el format "mm/dd/aaaa". Per entendre'ns, de l'IE6 a l'IE7 no funciona igual.

Més coses: per què convertir amb parseFloat en comptes de fer-ho amb parseInt? perquè parseInt te un bug que fa que la conversió falli. Increïble però cert.

L'última: per què li resto 1 al mes? perquè els mesos en Javascript són un array indexat que comença amb zero.