"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

HTML+CSS: Wie text nicht markierbar machen?

semteX 03.03.2009 - 11:52 5736 11
Posts

semteX

Risen from the banned
Avatar
Registered: Oct 2002
Location: Pre
Posts: 14340
Grüße

Folgendes Problem: eine HTML seite besteht im prinzip aus labeln und dem passenden text dazu. das ganze sieht dann (in pseudohtml) so aus:

<label>Firma:</label> Musterfirma FTW
<label>Kontakt:</label> 99299929

etc

das Problem ist jetzt: Man soll die ganze gschichte jetzt zum Etiketten drucken rauskopieren können. Die "Beschreibung" wie Firma und Kontakt soll da natürlic nicht mitkopiert werden.

Das ist jetzt im Firefox gar kein problem, beim IE7 passts auch... ABER

beim IE6 buggt es...

ich hab jetzt schon lösungen wie unter http://www.dynamicdrive.com/dynamicindex9/noselect.htm gefunden. Diese haben allerdings einen massiven schönheitsfehler, der das ding unbenützbar macht: wenn ich außerhalb der "nicht markierbaren" zone zum markieren beginne, funktioniert der Schutz nicht mehr und das ganze wird durchmarkiert...

hätt wer ne idee oder ne lösung, die im IE6 auch funktioniert?
Bearbeitet von semteX am 11.03.2009, 15:01

userohnenamen

leider kein name
Avatar
Registered: Feb 2004
Location: -
Posts: 15844
du hast schon die kampagne zum IE6 sterben mitbekommen oder? beteilig dich am besten einfach daran ;)
aber sorry für den unproduktiven post

semteX

Risen from the banned
Avatar
Registered: Oct 2002
Location: Pre
Posts: 14340
das ist leider keine option und ja, wenns nach mir ginge wär die komplette bude seit jahren schon umgestellt.

AdRy

Auferstanden
Avatar
Registered: Oct 2002
Location: Wien
Posts: 5239
warum machst keinen copy-button der genau das in die zwischenablage kopiert was man normal markieren soll? brauchst halt js dafür.

Spikx

My Little Pwny
Avatar
Registered: Jan 2002
Location: Scotland
Posts: 13504
Zitat von AdRy
warum machst keinen copy-button der genau das in die zwischenablage kopiert was man normal markieren soll? brauchst halt js dafür.
Das geht dafür dann aber nur im IE, außer man macht diesen Flash workaround, der aber scheinbar auch nicht immer funktioniert? (Habe noch nicht all zu viel Erfahrung damit gemacht.)

semteX

Risen from the banned
Avatar
Registered: Oct 2002
Location: Pre
Posts: 14340
eine IE only lösung würd komplett reichen, kann ma ja kombinieren.... ging das copy to clipboard im IE6 auch schon?

ich werd mal bissi googeln, vielen dank für die tolle idee, darauf hätt ich jetzt gar ned gedacht :)

Spikx

My Little Pwny
Avatar
Registered: Jan 2002
Location: Scotland
Posts: 13504
Kannst dir sogar gleich direkt von oc.at abschaun: http://www.overclockers.at/oc.js :D
Code:
function copyToClipboard(szText)
{
	szRealText = szText.replace(/\+/g," ");

	// IE: Function integrated!
	if (window.clipboardData && clipboardData.setData)
	{
		clipboardData.setData("Text",unescape(szRealText));
		return true;
	}

	// Else: Copy with Flash Object
	if (!document.getElementById('idFlashCopy'))
	// => Flash Object exists?
	{
		var oDiv = document.createElement('div');

		oDiv.id = 'idFlashCopy';

		document.body.appendChild(oDiv);
	}

	document.getElementById('idFlashCopy').innerHTML = '<embed src="/flashcopy.swf" FlashVars="clipboard='+szRealText+'" width="30" height="30" type="application/x-shockwave-flash"></embed>';

	return true;
}
Und hier gleich ausprobiern (copy).

fatmike182

Agnotologe
Registered: Oct 2005
Location: VIE
Posts: 4223
(label benötigt noch ein for, aber war ja glaub ich eh nur zur Veranschaulichung gemeint)

::selection gäbs bei CSS, aber nehm an das beeinflusst nicht viel
wennst nach unselectable text googlest findest viele js beispiele

watchout

Legend
undead
Avatar
Registered: Nov 2000
Location: Off the grid.
Posts: 6845
Alternative wäre mit Layern zu arbeiten.
Dazu schreibst du im Prinzip deine Labels in einen Layer, dazwischen ein (voll-)transparentes PNG/GIF und im Layer darüber schreibst du deine Daten.

Funkt sogar ohne JS/Flash und mit GIF bzw. PNG-8 sollte es sogar der IE5 packen :)

Die Problematik dabei ist, dass sich die Elemente schwer aneinander ausrichten lassen (zumindest ohne JS...), also muss man absolut positionieren

Edit: muss mich korrigieren, man kann mit nur teils-absoluter Positionierung auch die richtigen Positionen erreichen indem man auch im Background-Layer (in der farbe des Hintergrunds, bzw. per css3 Farben) versteckt den gleichen Inhalt schreibt wie im FG, wodurch man eine korrekte Darstellung erreichen kann, dabei muss man natürlich Borders etc. kopieren.
Bearbeitet von watchout am 03.03.2009, 15:56

semteX

Risen from the banned
Avatar
Registered: Oct 2002
Location: Pre
Posts: 14340
Zitat von watchout
Alternative wäre mit Layern zu arbeiten.
Dazu schreibst du im Prinzip deine Labels in einen Layer, dazwischen ein (voll-)transparentes PNG/GIF und im Layer darüber schreibst du deine Daten.

Funkt sogar ohne JS/Flash und mit GIF bzw. PNG-8 sollte es sogar der IE5 packen :)

Die Problematik dabei ist, dass sich die Elemente schwer aneinander ausrichten lassen (zumindest ohne JS...), also muss man absolut positionieren

Edit: muss mich korrigieren, man kann mit nur teils-absoluter Positionierung auch die richtigen Positionen erreichen indem man auch im Background-Layer (in der farbe des Hintergrunds, bzw. per css3 Farben) versteckt den gleichen Inhalt schreibt wie im FG, wodurch man eine korrekte Darstellung erreichen kann, dabei muss man natürlich Borders etc. kopieren.
Die Idee find ich gut, allerdings stell ich mir das mit der positionierung hier wie die absolute hölle vor (unbekannte länge, unbekannte zeilenanzahl,..)

fatmike182

Agnotologe
Registered: Oct 2005
Location: VIE
Posts: 4223
noch eine dumme Idee, aber frame-übergreifend kann man ja auch nicht kopieren für gewöhnlich (oder?). Folglich könntest du das als Frameset machen, evtl sogar auf iframes-Basis.

Aufwändiger aber gut hats der Standard gelöst

semteX

Risen from the banned
Avatar
Registered: Oct 2002
Location: Pre
Posts: 14340
Zitat von fatmike182
noch eine dumme Idee, aber frame-übergreifend kann man ja auch nicht kopieren für gewöhnlich (oder?). Folglich könntest du das als Frameset machen, evtl sogar auf iframes-Basis.

Aufwändiger aber gut hats der Standard gelöst
also da mit frames und iframes reinkrachn führt glaub ich zu größerem unfrieden....

problem wurde jetzt unter anderem durch den "copy" button gelöst...
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz