1

レポートが読み込まれるとすぐに実行する必要があるカスタム JavaScript 関数を含む Cognos レポートがいくつかあります。レポートの準備ができたときに発生するイベントを見つけることができなかったので、HTML Itemレポートの下部にある s に関数呼び出しを含めました。関数は、呼び出しを含むスクリプト タグが読み込まれるとすぐに呼び出されます。カスタム関数は jQuery を使用するためHTML Item、レポートの上部に jQuery をインポートする別の関数があります。

問題は、jQuery の読み込みが完了する前に関数が実行されることがあり、エラーが発生することです。ページ ソースを調べると、スクリプト タグの順序は保持されていますが、すべてページの先頭に配置されていることがわかります。それらが並行してロードされたり、レポートのロードが完了する前に実行されたりするのを止めるものは何もありません。

私が考えることができる最善の解決策は、レポートの読み込みが完了した後に、何らかのイベントから関数呼び出しをトリガーすることです。レポートの準備ができたときに確実にトリガーされるイベントまたは一連のイベントを見つけた人はいますか?

  • プロンプトページからロードした後
  • 別のレポートからのドリルスルー
  • ページの再プロンプト ボタンがクリックされたとき

JQuery のドキュメント準備完了は、これらの状況のいずれでもトリガーされません。<body onload>Cognos 8 では機能しているようですが、Cognos 10 では機能しません。

4

1 に答える 1

2

使用 (ドキュメント).ready

IBM のこの例を参照してください

<script type="text/javascript" 
  src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.min.js"></script>
<script type="text/javascript" 
  src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery-ui.min.js"></script>
<script type="text/javascript">
var j = jQuery.noConflict();
j(document).ready(function()
{
  j('.ShowHideList').hide();
  j('.ShowHideClicker').click(function()
  {
    j(this).next().toggle();
  });
});
</script>
于 2014-02-06T22:32:10.430 に答える