Ich habe ein Div mit etwas Text, den ich möchte, dass der Benutzer in der Lage sein, leicht von der Seite (über die Zwischenablage) zu kopieren. Gibt es eine browserübergreifende Möglichkeit, den gesamten Text innerhalb eines div auf einen Mausklick auszuwählen?
Antworten
Zu viele Anzeigen?Die browserübergreifende Unterstützung für das Kopieren in die Zwischenablage über Javascript erfordert die Verwendung von Flash, um die Sicherheitsvorkehrungen von Firefox/Netscape zu umgehen, die den Zugriff auf die Zwischenablage verhindern. Wenn Sie jQuery können Sie ganz einfach auf die Zwischenablage Plugin. Wenn Sie Ihr eigenes Javascript entwickeln, ohne jQuery zu verwenden, dann ist das Blogbeitrag kann helfen.
Außerdem können Sie die Sicherheitsberechtigungen von Firefox so anpassen, dass Skripte Zugriff auf Ihre Zwischenablage erhalten. Eine gute Durchgang ist unter dojotoolkit.org verfügbar. Dies ist in der Regel nicht der richtige Weg, da jeder Ihrer Benutzer diese Anpassung vornehmen müsste. Es ist viel einfacher, Flash zu verwenden, da es mit allen modernen Browsern (Safari, IE, Firefox und Opera) funktioniert.
<SPAN ID="copytext" STYLE="height:150;width:162;background-color:pink">
This text will be copied onto the clipboard when you click the button below. Try it!
</SPAN>
<TEXTAREA ID="holdtext" STYLE="display:none;">
</TEXTAREA>
<BUTTON onClick="ClipBoard();">Copy to Clipboard</BUTTON>
function ClipBoard()
{
holdtext.innerText = copytext.innerText;
Copied = holdtext.createTextRange();
Copied.execCommand("Copy");
}
Schauen Sie sich diese beiden an: http://yangshuai.googlepages.com/jquerycopyplugin http://plugins.jquery.com/project/clipboard
Diese Frage könnte einige Hinweise für Sie enthalten.
Ich konnte keine Möglichkeit finden, Text in einem Div zu markieren, und wollte auch nicht den Flash-Ansatz verwenden, um ihn einfach zu kopieren (obwohl das ein nettes Tool ist).
Am Ende habe ich genau das getan:
function selectIncidentIDText (incidentIDTxtEl) {
incidentIDTxtEl.select();
}
<h:inputText value="(IncidentID: #{ViewIncidentBean.incident.id})" readonly="true" onclick="selectIncidentIDText(this);"/>
Für meine Zwecke ist das gut genug, auch wenn es ein bisschen hässlich ist.