개요
퍼가기 같은곳에 보면 클립보드에 복사하기가 있는데요. 고놈의 소스입니다.
소스내용
Internet Explorer-only Clipboard Access
using System;
using System.Windows.Browser;
namespace ClipboardDemo
{
public static class Clipboard
{
const string HostNoClipboard = "The clipboard isn't available in the current host.";
const string ClipboardFailure = "The text couldn't be copied into the clipboard.";
/// <summary>
/// Write to the clipboard (Internet Explorer-only)
/// </summary>
public static void SetText(string text)
{
// document.window.clipboardData.setData(format, data);
var clipboardData = (ScriptObject)HtmlPage.Window.GetProperty("clipboardData");
if (clipboardData != null) {
bool success = (bool)clipboardData.Invoke("setData", "text", text);
if (!success) {
HtmlPage.Window.Alert(ClipboardFailure);
}
}
else {
HtmlPage.Window.Alert(HostNoClipboard);
}
}
}
}
Cross-browser, cross-platform solution
using System;
using System.Windows.Browser;
namespace ClipboardDemo
{
public static class Clipboard
{
const string HostNoClipboard = "The clipboard isn't available in the current host.";
const string ClipboardFailure = "The text couldn't be copied into the clipboard.";
const string BeforeFlashCopy = "The text will now attempt to be copied...";
const string FlashMimeType = "application/x-shockwave-flash";
// HARD-CODED!
const string ClipboardFlashMovie = "clipboard.swf";
/// <summary>
/// Write to the clipboard (IE and/or Flash)
/// </summary>
public static void SetText(string text)
{
// document.window.clipboardData.setData(format, data);
var clipboardData = (ScriptObject)HtmlPage.Window.GetProperty("clipboardData");
if (clipboardData != null) {
bool success = (bool)clipboardData.Invoke("setData", "text", text);
if (!success) {
HtmlPage.Window.Alert(ClipboardFailure);
}
}
else {
HtmlPage.Window.Alert(BeforeFlashCopy);
// Append a Flash embed element with the data encoded
string safeText = HttpUtility.UrlEncode(text);
var elem = HtmlPage.Document.CreateElement("div");
HtmlPage.Document.Body.AppendChild(elem);
elem.SetProperty("innerHTML", "<embed src=\"" +
ClipboardFlashMovie + "\" " +
"FlashVars=\"clipboard=" + safeText + "\" width=\"0\" " +
"height=\"0\" type=\"" + FlashMimeType + "\"></embed>");
}
}
}
}
원본 주소 : http://www.jeff.wilcox.name/2008/05/clipboard-access/
IE 에서는 자바스크립트로 클립보드에 복사가 되는데 다른것들에서는 안된다고 하네요 그래서 플래쉬를 이용해서 사용 한다고 하네요. 바로 위에서 사용된 플래쉬 파일을 첨부하겠습니다.
플래쉬 파일