これを動作させようとしていますが、パラメータIHeaderResponseの応答が呼び出し側の親ページのリンクをそれぞれ非表示にするためにrenderHeadメソッドを使用しています。 これは、Apache Tomcatサーバー経由で提供されるモバイルWebアプリケーションの一部です。親ページのidでJQueryを表示/非表示にする
StartPage.html、(リンクを非表示にするための呼び出し親ページは、/で示す)
<li class="ui-block-e">
<a wicket:id="logoutlink" id="logout" href="#" data-theme="a" class="ui-btn-corner- all ui-btn ui-btn-up-a ui-btn-icon-top">
<span class="ui-btn-inner ui-btn-corner-all">
<span class="ui-btn-text">Logga ut</span>
<span class="ui-icon ui-icon-custom"></span>
</span>
<a wicket:id="loginlink" id="login" href="/domain/mobile/login" data-theme="a" class="ui-btn-corner-all ui-btn ui-btn-up-a ui-btn-icon-top">
<span class="ui-btn-inner ui-btn-corner-all">
<span class="ui-btn-text">Logga in</span>
<span class="ui-icon ui-icon-custom"></span>
</span>
</a>
</li>
LoginRedirectPage.java、(リダイレクトのjsを含むページ)
@Override
public void renderHead(IHeaderResponse response) {
log.info("Redirecting to " + redirectUrl);//to check via log
// if the parent is the mobile app..
response.renderOnDomReadyJavascript(
"if(parent && parent.$ && parent.$.mobile){" +
"parent.$('#logout').show();" +
"parent.$('#login').hide();" +
"parent.history.go(-2);" +
"console.log('redirecting with jqm "+redirectUrl+"');" +//logging
"}");
しかし、(これを見て、これを見た?)、
行 "親。$( '#ログアウト')。show();"と "parent。$( '#login')。hide();"
ブラウザで(PC経由で)想定されていることを実行すると、ログアウトリンクが有効になり、ログインリンクは非表示になります(ユーザーがログインしている場合)。
しかしリンクは彼らがすることになっているように隠され/示されていないれ、Androidの携帯電話を経由してこれを行う一方で、ログインリンクがまだそこに座っています。私がログインしていないかのように、ログには私がログインしていることが表示されますが、
この場合、定数「redirectUrl」ポイントはStartPage.htmlに戻ります。
ところで、私は古いスタイルのjsも使用しようとしました。 "parent.document.getElementById( 'logout')。style.display = 'ブロック';"、無駄になります。
ありがとうございます。
//カレ
こんにちは!あなたが提案したように、「logoutlink」の代わりに「logoutlink12」)のように、logoutLinkがレンダリングされているかどうかわからないので、申し訳ありません。レンダリングを表示する方法の問題です問題のアプリを実行しているAndroid端末のhtml。親ページに渡されたもの(親ページのログアウト/ログインタグを操作するもの)を正しく表示するために、レンダリングされたhtmlを取得する方法を見つける必要があります。 Androidの携帯電話でレンダリングされたhtmlを表示する方法については、親切に評価されています。 // Kalle – Learning
私はいくつかの方法があると確信しています(私はAndroidで作業していないのですぐにわかりません)。ただし、JavaScriptの条件を変更して、マークアップを確認するために、そのページを通常のブラウザに一時的にレンダリングするだけでも可能です。それにもかかわらず、私のポイントはまだ立っています。あなたのマークアップIDがwicketによって変更されており、 '$( '#logout')'とみなすことはできません。 'logoutLink.getMarkupId()'を使うことは、javascriptを使って作業するときの一般的な振る舞いです。 – jbrookover