lenguaje historia etiquetas ejemplos codigos code caracteristicas html

historia - html pdf



¿Se permiten comillas simples en HTML? (10)

He escuchado a personas decir que CADA comillas para los campos HTML no es reconocida por CADA navegador

Esa persona está equivocada.

Soy un gran usuario de usar comillas dobles en PHP para poder interpolar variables en lugar de concatenar cadenas. Como resultado, cuando estoy generando HTML, a menudo uso comillas simples para configurar los campos de etiquetas. Por ejemplo:

$html = "<input type=''text'' name=''address'' value=''$address''>";

Ahora esto es mucho más legible para mí que cualquiera

$html = "<input type=/"text/" name=/"address/" value=/"$address/">";

o

$html = ''<input type="text" name="address" values="'' . $address . ''">'' ;

A partir de búsquedas breves, he escuchado a personas decir que las comillas simples para campos HTML no son reconocidas por CADA navegador. Por lo tanto, me pregunto qué navegadores tendrían problemas para reconocer el código HTML de una sola cita.


... o simplemente use heredocs. Entonces no necesitas preocuparte de escapar de nada excepto END .


Como señaló PhiLho, aunque existe una creencia ampliamente difundida de que las comillas simples no están permitidas para los valores de los atributos, esa creencia es incorrecta.

El estándar XML permite comillas simples y dobles en torno a los valores de los atributos.

El estándar XHTML no dice nada para cambiar esto, pero una sección relacionada que indica que los valores de los atributos deben ser citados usa comillas dobles en el ejemplo, lo que probablemente haya conducido a esta confusión. Este ejemplo simplemente señala que los valores de atributo en XHTML deben cumplir el estándar mínimo para los valores de atributo en XML, lo que significa que deben citarse (a diferencia del HTML simple que no le importa), pero no lo restringe a uno o doble comillas.

Por supuesto, siempre es posible que te encuentres con un analizador sintáctico que no cumple con los estándares, pero cuando eso sucede, todas las apuestas se desactivan de todos modos. Entonces, es mejor apegarse a lo que dice la especificación. Es por eso que tenemos especificaciones, después de todo.


El único problema es que los datos ingresen a los campos TEXT INPUT. Considerar

<input value=''it''s gonna break''/>

Lo mismo con:

<input value="i say - "this is gonna be trouble" "/>

No puedes escapar de eso, tienes que usar htmlspecialchars .



Las comillas simples están bien para HTML, pero no son válidas para XHTML, lo que podría ser problemático si alguien estuviera usando un navegador que solo admitía XHTML, pero no HTML. No creo que existan navegadores de este tipo, aunque es probable que existan algunos Agentes de usuario que requieran XHTML estricto.


No creas todo lo que ves en Internet ...
Curiosamente, acabo de responder algo similar a que alguien declare que las comillas simples no son válidas en XHTML ...

Mmm, miro hacia arriba mientras escribo, y veo que Adam N propaga la misma creencia. Si él puede respaldar su afirmación, me retracto de lo que escribí ... AFAIK, XML es agnóstico y acepta ambos tipos de citas. Incluso probé y validé sin problemas una página XHTML con solo comillas simples.


Recientemente, tuve un problema con la optimización de búsqueda de Google. Si tiene comillas simples, no parece rastrear páginas enlazadas.


También tiendo a usar comillas simples en HTML y nunca he tenido problemas.


Utilicé comillas simples en páginas HTML y JavaScript incrustado en él y funciona bien. Probado en IE9, Chrome y Firefox: parece funcionar bien.

<!DOCTYPE html> <html> <head> <meta charset=''utf-8''> <meta http-equiv=''X-UA-Compatible'' content=''IE=edge,chrome=1''> <title>Bethanie Inc. data : geographically linked</title> <script src=''http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js''></script> <script src=''https://maps.googleapis.com/maps/api/js?v=3.11&sensor=false'' type=''text/javascript''></script> <script type=''text/javascript''> // check DOM Ready $(document).ready(function() { // execute (function() { /////////////// Addresses /////////////////// var locations = new Array(); var i = 0; locations[i++] = ''L,Riversea: Comp Site1 at Riversea,1 Wallace Lane Mosman Park WA 6012'' locations[i++] = ''L,Wearne: Comp Site2 at Wearne,1 Gibney St Cottesloe WA 6011'' locations[i++] = ''L,Beachside:Comp Site3 Beachside,629 Two Rocks Rd Yanchep WA 6035'' /////// Addresses///////// var total_locations = i; i = 0; console.log(''About to look up '' + total_locations + '' locations''); // map options var options = { zoom: 10, center: new google.maps.LatLng(-31.982484, 115.789329),//Bethanie mapTypeId: google.maps.MapTypeId.ROADMAP, mapTypeControl: true }; // init map console.log(''Initialise map...''); var map = new google.maps.Map(document.getElementById(''map_canvas''), options); // use the Google API to translate addresses to GPS coordinates //(See Limits: https://developers.google.com/maps/documentation/geocoding/#Limits) var geocoder = new google.maps.Geocoder(); if (geocoder) { console.log(''Got a new instance of Google Geocoder object''); // Call function ''createNextMarker'' every second var myVar = window.setInterval(function(){createNextMarker()}, 700); function createNextMarker() { if (i < locations.length) { var customer = locations[i]; var parts = customer.split('',''); // split line into parts (fields) var type= parts.splice(0,1); // type from location line (remove) var name = parts.splice(0,1); // name from location line(remove) var address =parts.join('',''); // combine remaining parts console.log(''Looking up '' + name + '' at address '' + address); geocoder.geocode({ ''address'': address }, makeCallback(name, type)); i++; // next location in list updateProgressBar(i / total_locations); } else { console.log(''Ready looking up '' + i + '' addresses''); window.clearInterval(myVar); } } function makeCallback(name,type) { var geocodeCallBack = function (results, status) { if (status == google.maps.GeocoderStatus.OK) { var longitude = results[0].geometry.location.lng(); var latitude = results[0].geometry.location.lat(); console.log(''Received result: lat:'' + latitude + '' long:'' + longitude); var marker = new google.maps.Marker({ position: new google.maps.LatLng(latitude, longitude), map: map, title: name + '' : '' + ''/r/n'' + results[0].formatted_address});// this is display in tool tip/ icon color if (type==''E'') {marker.setIcon(''http://maps.google.com/mapfiles/ms/icons/green-dot.png'')};