いいね!数

0

閲覧数
541

ssjsの中で、ブラウザ上のボタンをクリックさせたいと考えております。

実際やりたいのは、エージェントを起動させた後に、csjsの書かれたボタンをクリック

させたいと思っているのですが、そもそも以下の式をssjsに書きましたが、エラーが

出てボタンがクリックされません。

view.postScript("document.getElementById('btn1').click();")

クリックしたいボタンのidは"btn1"です。

ブラウザで出るエラーは以下の通りです。

Uncaught TypeError: Cannot read property 'click' of null

書き方に間違えがあるのでしょうか?

ちなみに使用しているブラウザはChromeの最新版になります。

ssjsでボタンをクリックさせるにはどうしたらよいのでしょうか?

 

サーバー情報: | クライアント情報: | 
カテゴリ:アプリ開発 - XPages | タグ:
  | 質問日時:2016/04/28 16:56:31

回答・コメント

いいね!数

0

XNotes様

document.getElementById("#{id:btn1}").click(); ではいかがでしょうか?

 

 

mak

回答日時:2016/04/28 17:48:59

いいね!数

0

こんにちわ。

ところで、SSJSがブラウザ上のボタンをクリックするトリガは何でしょうか?

表示してるページの何かの操作がトリガだったりするんですかね。

だったら、最初の操作で走るイベント処理をCSJSにして、遠隔クリックしたいボタンの中の処理をコピペすればよかったりしないですかね。

/Yac

 

回答日時:2016/04/28 20:53:50

いいね!数

0

mak様

view.postScript('document.getElementById("#{id:btn1}").click();')とやってみたのですが、

ボタンをクリックすることはできませんでした。。

yac4423様

ssjsで書かれたボタンAの中でLotusScriptで書かれたエージェントを実行し、その実行が

終わった後で、csjsで書かれたボタンBをクリックさせたいと思っております。

ユーザーがボタンAをクリックするとエージェントが実行されて、その次にボタンBが

裏でクリックされるという動作を実現したいと考えております。

実現は可能でしょうか?

 

回答日時:2016/05/02 9:19:59

いいね!数

0

XNotes様

確かにボタンはクリックできませんね・・・失礼しました。

テキストボックスとパネルを使ってSSJSからCSJSを呼び出すロジックを考えてみました。
これがXNotes様のアプリに適用するかわかりませんが参考なればと思います。

<xp:button value="button1" id="button1">
    <xp:eventHandler event="onclick" submit="true"
        refreshMode="complete">
        <xp:this.action><![CDATA[#{javascript:getComponent("inputText1").setValue("1");

}]]></xp:this.action>
        </xp:eventHandler></xp:button>
    <xp:br></xp:br>
    <xp:inputText id="inputText1"></xp:inputText>
    <xp:br></xp:br>
    <xp:panel id="panel1">
        <xp:eventHandler event="onClientLoad" submit="false">
            <xp:this.script><![CDATA[if(document.getElementById("#{id:inputText1}").value===''){

}else{
    alert('csjsで書かれたボタンBの処理内容を書く')
}]]></xp:this.script>
        </xp:eventHandler></xp:panel>


mak

回答日時:2016/05/02 11:40:21