[JavaScript] Zwischenablage mit Java

Sebastian1990

Cadet 2nd Year
Registriert
Okt. 2007
Beiträge
31
Hallo CB,

programmiere gerade mit java ein kleines tool. benutze folgenden code http://www.traum-projekt.com/forum/sitemap/t-10212.html

habe ihn aber etwas modifiziert. Das ganze sieht dann so aus:

HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Unbenanntes Dokument</title>
<title>Zwischenablage</title>


<script language="JavaScript" type="text/javascript">
<!--
var nn = !!document.layers;
var ie = !!document.all;

if (nn){
netscape.security.PrivilegeManager.enablePrivilege("UniversalSystemClipboardAccess");
var fr=new java.awt.Frame(); // der IE kann's so, aber für den NN muss man dessen Java-API bemühen
var zwischenablage = fr.getToolkit().getSystemClipboard();
}

function copy(textfeld){
if (nn) {
textfeld.select();
zwischenablage.setContents(new java.awt.datatransfer.StringSelection(textfeld.value), null);
}
else if (ie) {
textfeld.select();
cbBuffer=textfeld.createTextRange();
cbBuffer.execCommand('Copy');
}
}

function paste(textfeld){
if (nn) {
var inhalt=zwischenablage.getContents(null);
if (inhalt!=null){
textfeld.value=inhalt.getTransferData(java.awt.datatransfer.DataFlavor.stringFlavor);
}
}
else if (ie) {
textfeld.select();
cbBuffer=textfeld.createTextRange();
cbBuffer.execCommand('Paste');
}
}
//-->
</script>

</head>
<body>

<form>

<input name="txtFeld" type="text" value="@">
<input type="button" value="Kopieren" name="cmdCopy" onClick="copy(this.form.txtFeld)">
</form>

<form>
  <input name="txtFeld2" type="text" value="€">
  <input type="button" value="Kopieren" name="cmdCopy2" onClick="copy(this.form.txtFeld)">
</form>
</body>
</html>

Nunja, das eigentlich Problem ist:
a) wenn ich auf den zweiten kopieren Button klicke, kopiert er es aus dem ersten Feld und nicht dem Feld 2!
b) warum funktioniert es nur im IE7? und nicht im Firefox?



Hoffe ihr könnt mir helfen.


Sebastian
 
AW: Zwischenablage mit Java

Zu a): Du hast einfach im onClick-Handler des zweiten Buttons "this.form.txtFeld" geschrieben, anstatt "this.form.txtFeld2".

Mit "this" erhältst du schon die Referenz auf das Element, in dem dieses Schlüsselwort verwendet wird, also in diesem Fall das input-Element. Versuch's also mal mit "copy(this)" innerhalb des onClick-Handlers.
 
AW: Zwischenablage mit Java

Danke Prypjat. Das hatte funktioniert. Leider besteht weiterhin das Problem, das ich den Code nur im IE ausführen kann. Der Firefox mag das nicht. Liegt wohl am ActiveX :/

Kann ich das irgendwie biegen?



Sebastian
 
Zurück
Oben