'現在アクティブなタブのタイトルとURLをClipBoardにコピーする。

Option Explicit

Dim luna
Dim tutext,oclip,document,dcid,cltext,deftitle,tridentTabId,useDmyTrident,currentActiveIndex,tabNumber,i

Sub fin

	' クリップボードを利用するためにダミーの空Tridentを用意した場合は削除します
	If useDmyTrident = true Then
		' 作成したタブを削除
		luna.Close(luna.GetIndex(tridentTabId))
		' タブ削除時に表示が移ってしまうのですぐ戻す
		luna.ActiveIndex = currentActiveIndex
	End If
	
	Set oclip = Nothing
	Set document = Nothing
	Set luna = Nothing
	WScript.Quit
End sub

Set luna = CreateObject("Lunascape2.LunascapeAPI")
currentActiveIndex = luna.ActiveIndex()
dcid = luna.GetDocumentID(currentActiveIndex)

	
	' タイトルを取得するためアクティブなタブでJavaScriptを実行します。
	' BODYタグの内側先頭に必要な情報（ページタイトル）をElementで持たせたDIVタグを埋め込みます
	luna.ExecuteJavaScript dcid, "var element = document.createElement('div'); element.setAttribute('id','LunascapeDmyDiv'); var objBody = document.getElementsByTagName('body').item(0); objBody.appendChild(element);element.setAttribute('dmytitle', document.title);"

	' 埋め込んだダミーのDivタグから情報を抜きます
	deftitle = luna.GetDOMElementAttribute(dcid, "LunascapeDmyDiv","dmytitle")
		
	' BODYタグのに埋め込んだダミータグを削除します
	luna.ExecuteJavaScript dcid, "var element = document.getElementById('LunascapeDmyDiv');var parent = element.parentNode;var len = parent.childNodes.length;for(var i = len-1; i >= 0; i--){ if(parent.childNodes[i].id == 'LunascapeDmyDiv'){parent.removeChild(parent.childNodes[i]);}}"

	' タイトルとURLでクリップボードにコピーする文字列を成形します
	If deftitle = "" Then deftitle = "notitle"
	tutext = deftitle & " : " & luna.URL
	If Err.Number <> 0 Then fin

	useDmyTrident = false
	' クリップボードを利用するためにTridentのObjectが必要
	If luna.EngineType( currentActiveIndex ) = "{248B8F5D-FAE2-4f0e-9EC9-3B408DBF0B2B}" Then
		' 現在開いているオブジェクトがTridentの場合はこのオブジェクトを利用します
		tridentTabId = dcid
	Else
		' 現在開いているオブジェクトがTrident以外の場合はTridentのオブジェクトを探します
		tabNumber = luna.GetCount
		tridentTabId = -1
		' 現在開いているすべてのオブジェクトを参照してTridentがないか探す
		For i=0 To tabNumber step 1
			If luna.EngineType( i ) = "{248B8F5D-FAE2-4f0e-9EC9-3B408DBF0B2B}" Then
				' Tridentのオブジェクトを見つけた場合はこのオブジェクトを利用します
				tridentTabId = luna.GetDocumentID(i)
				Exit For
			End If
		Next
		If tridentTabId = -1 Then
			' Tridentのオブジェクトがない場合は空のTridentタブを用意します
			tridentTabId = luna.OpenDocument("{248B8F5D-FAE2-4f0e-9EC9-3B408DBF0B2B}", "")
			luna.Navigate tridentTabId, "about:blank"
			useDmyTrident = true
			' WebKit利用時、新規タブ作成時に表示が移ってしまうのですぐ戻す
			luna.ActiveIndex = currentActiveIndex
		End If
	End If

	Set document = luna.GetDocumentObject(tridentTabId)
	If document Is Nothing Then
		Call luna.MessageBox("无法创建文档对象。")
		fin
	End If

	' 成形したデータをクリップボードにセットします
	Set oclip = document.parentWindow.clipboardData
	cltext = oclip.getData("text")
	cltext = tutext
	oclip.setData "text",cltext

fin
