El texto oculto se puede seleccionar en IE a pesar del estilo = 'mostrar: ninguno'

Esto parece ser una 'característica' específica de IE. He probado utilizando IE8. UsuarioJohn h Ha contribuido confirmando en IE6 y IE7.

Tengo un texto que se integra en mi página y desde el principio de la creación del elemento tienestyle = "display: none;"

No estoy usando jQuery para ocultar el texto y el texto no se está "mostrando". Aunque, para más información, accedo a los contenidos del elemento utilizando jQuery's.html() método.

Sin embargo, si el usuario selecciona textocerca midisplay:none Elemento y copia lo que se ha seleccionado, se incluye el texto oculto. Justo como si se hubiera estado mostrando normalmente.

El marcado se ve así:

<code>...
<td align="left">
    Text they should see
    <div id="whateverButUnique" style="display:none;">Value I want hidden</div>
    Some other text
</td>
</code>

Aquí hay unviolín donde puedo reproducir el problema usando IE <9.

Si bien esta no es una preocupación seria para esta aplicación en particular, me sorprendió con la guardia baja y me pregunté si esto es una 'característica' o si estaba haciendo algo incorrectamente.

La mayoría deotras preguntas He visto con respectodisplay:none Tenían el contenido de sus carteles como visible. De nuevo, mi contenido es esencialmente invisible.hasta Seleccionado, copiado y finalmente pegado.

¿Puedo evitar que los usuarios de Internet Explorer encuentren este contenido al copiar / pegar? Me doy cuenta de que podrían verlo en las Herramientas de desarrollo y al ver la fuente.

Actualizar: Gracias a los comentarios de otros usuarios, también he intentado aplicar el estilo devisibility:hidden yz-index=-1. UsuarioJohn h ha intentado muchos otros intentos de ocultación, pero IE es hasta ahora tenaz en permitir que esta característica se escape. Gracias por todas las grandes ideas!

Actualizar: Gracias por preguntarHeather Walters; Los valores que necesito usar en la página están disponibles solo en el servidor, pero luego los uso.despues de que se carga la pagina para generar un enlace mediante el procesamiento adicional de un programa externo a través de jQuery / AJAX. Así que construyo la página con los valores ocultos pero incluidos y luego opero esos valores ocultos para construir algo útil con ellos.

Sin embargo, una vez que termine de usarlos para construir algo útil, ahora me doy cuenta de que podría eliminarlos todos a través de jQuery y tener un impacto de rendimiento adicional. El siguiente código lograría esto para todos los que tienen javascript habilitado:

<code>$("[id^=whateverButUnique]").html("");
</code>

Con potencialmente cientos de elementos en la página, este procesamiento adicional no es ideal.

vegaNo creoesta solución funcionaría para mí porque tengo que crear la página y mi contenido oculto en el lado del servidor. Todos están integrados en un bucle del lado del servidor con potencialmente cientos de otros elementos, por lo que tengo la opción de construirlo en su lugar mientras el servidor está colocando todo en una tabla (con el elemento oculto incluido) o hacer un bucle por segunda vez (doloroso) e intente forzar la visualización de los elementos: ninguno en algún lugar con menos posibilidades de ser seleccionado.

Oh Dios por qué, Queria creer en tu solucion En IE8, el campo oculto no apareció en el bloc de notas; sin embargo, pude copiar la sección y pegarla en Microsoft Word. Ya no estaba oculto.

Otro factor en el trabajo: esta página ya es bastante javascript, así que esperaba poder encontrar una solución que evitara que IE vea los valores sin agregar otro paso a través de más de 100 elementos potenciales ... pero es posible que tenga que hacerlo.

Actualizar: Robin MabenParece que la sugerencia será unagenial solución alternativa Su sugerencia es ocultar los valores en eldata-x atributo HTML5 personalizado. Esto parece estar funcionando a pesar de mi (probablemente) página no compatible con HTML5. Por favor, vote su respuesta si también lo considera una contribución valiosa.

Actualizar: Confirmado He implementado con éxito la sugerencia de Maben y, por lo tanto, he podido reducir el número de búsquedas de DOM, una para cada elemento de mi página. Ya estaba repasando todos los DIV con elementos que quería mostrar, y ahora puedo acceder automáticamente a la propiedad de datos al mismo tiempo. Esto se ve así en mi implementación:

<code><div style="display:none" data-call-number="..." id="stackLocatorLinkFillUp...">...</div>
</code>

Los puntos suspensivos indican operaciones únicas para mí que están sucediendo. La identificación tiene un indicador numérico simple que incrementa uno por registro.

<code>// Loop through all of the items on the page that start with my id
$("[id^=stackLocatorLinkFillUp]").each( function() {
    // ...
    // Grab the contents of the div
    var innerContent = $(this).html();
    // Extract the call number out of the data-call-number field
    var callNumPreEncoded = $(this).data("callNumber");
    // ...eventually...
    $(this).html(...).css("display","block");
});
</code>

¡Gracias a todos!

Respuestas a la pregunta(3)

Su respuesta a la pregunta