ホームページ上のエンコードでgetToc("AA","","","","")とあるのですが、この中の引数は前後のjavascriptを見てもよくわからないのです。

自分でそのページだけを開きたいjavascriptを作りたいのです。getToc("AA","","","","")を実行してそのAAのページを開きたいのですが、
どのような構文になるのでしょうか?
もしくはどこかをみて勉強しろでもいいので助けてほしいです。

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2009/12/18 19:30:12
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:kn1967 No.1

回答回数2915ベストアンサー獲得回数301

ポイント300pt

答えは意外と簡単かもしれませんが、サーバが「どこから飛んできたのかによって、

本来の流れ以外から来た場合は拒否する」ようにプログラムされていたりすると、

以下のような手順ではまったく足りず、操作を偽装する必要性が出てきます。

(不正アクセスになる場合があるという事です。)


以下、サーバ側が拒否しないという仮定での話です。


(1)ファイルの準備

まずはパソコン上に適当なフォルダを作って、

必要なcssファイルとjsファイルを全て保存します。


コメント欄 > アドレス欄には、アドレスは***.doしか表示されません。


 ***.do の部分を JavaScripts/ActionHandler.js などに変えてアクセスすると、

ソースコードが丸ごと見えますから、全て選択して、メモ帳などに貼り付け、

ファイルとして保存してください。

(ファイルの数だけ繰り返してください。cssファイルも同じ方法です。)


(2)上記と同じフォルダ内に a.html というファイルで下記を作成。

<html>

<head>

<link rel="stylesheet" href="JAAA.css" type="text/css">

<script language="javascript" src="ActionHandler.js"></script>

<script language="javascript" src="URLUtil.js"></script>

<script language="Javascript" src="OrientationPath.js"></script>

<script language="javascript" src="jsp_related/searchLinks.js"></script>

<script language="javascript" src="jsp_related/TocControl.js"></script>

<script language="javascript" src="HomePage.js"></script>

<script language="javascript" src="BrowserType.js"></script>

<script language="javascript" src="TOC/toc.js"></script>

<script language="javascript" src="Links.js"></script>

<script language="javascript" src="Common.js"></script>

</head>

<body>

<script language="javascript"></p> <p> location.href = getToc('8564','','','','cc777');</p> <p></script>

</body>

</html>


(3)作成したファイルをダブルクリックして実行します。


以上の流れですが、

こちらでは動作テストまでは出来ませんので、変更等は当然ながら発生すると思います。

(1)についてはローカルに保存しない方法もあるのですが、

これからも改良をしていくならローカルに持っておいてもいいかと思いました。

(2)については、8564やcc777などをインプットするテキストボックスを用意して、

ボタンクリックで飛ぶという方法に改造すると楽かもしれませんが、

とりあえず上記で動くかどうかが優先確認事項なので、まずはお試しください。


おっと・・・そんなこと(?)よりも最優先事項がありました。

コードを丸ごと乗せる許可は取ってあったのでしょうか?

インターネット上に公開されているページなら問題ないと思いますが、

社外非公開のデータベースだったりした場合は・・・。

組織名も出ちゃってますし・・・。


もしも、ダメという事になった場合はコメント欄は削除してくださいね。

(もう遅いかもしれないけど・・・。)

回答欄についても消す必要が生じた場合は、はてなのサポートに連絡してください。

はてなのお問い合わせページ

  • id:kn1967
    そのページというのがURLであるならば、
    答えは簡単(回答は既に準備済み)なのですが、
    ページ内の一部を抜き出したいって事なのでしょうね。多分。

    引数が5つもあるgetToc。
    それはいったいぜんたい、どこにある、どのようなものを、
    参考にしておられるのか判りませんので、
    気にはなってますが、はてさて、どうしたら良いものか・・・?

  • id:Reiaru
    "AA" は多分 URL ですよね。
    getToc が何をするのかは分かりませんが、ともかくそこに URL を投げると何かしらの結果を返してくれる…?
    (質問内容から察するに、html が動的に生成される?)

    ただ、単体で JavaScript の function を実行する方法が分からないので、
    そのサンプルソースが欲しいみたいなお話ではないでしょうか…? (例えば おんろーど でコールするとかそんな様な)

    って私も質問の意図は分かりません、あとは kn1967 様にお任せ致します(^-^;
  • id:kn1967
    id:Reiaruさん >お任せ致します(^-^;

    勘弁してくだせぇ(笑)
  • id:kn1967
    回答が勝手に改造されちゃって一部違ってきてますので、
    下記にしてください。

    <script language="javascript">
    location.href = getToc('8564','','','','cc777');
    </script>

  • id:kn1967
    >switchpublicationと同じようにgettocでそのページに移動したい

    さて、夜もふけてまいりましたが、
    単体でのテストをする時間は取れたのでしょうか?

    単体テストが完了すれば、あとは既存システムの問題点の洗い出しになりますが、
    まずは自作の switchpublication 関数の中身が判らないとどうしようもないです。

    switchpublication 関数で、
    (1)3つの引数から、どのようにしてURLに変換しているのか?
    (2)どうして呼び出された目次ページのjavascriptが正しく作動してないのか?
    この二つの解明が必要になります。
    (1)は比較的簡単だと思いますが(2)が少し難解かもしれません。
    単体テストは(2)の解明のための布石であり、JAVAScript側からのアプローチです。

    全プログラムを見る権限があれば1日もかからないかもしれませんが、
    公の場でのやりとりですから、通過点を適宜定めて、
    いろいろな人の手と頭を使って、駅伝の如く気長にやるしかないですね。

    ※このコメントは継続して見てますよ。 という単なる挨拶です。
     従って、このコメントに返事をする必要はありません。
     より多くの時間を動作テストのほうに割いてください。
  • id:shotomo
    本当に考えてもらってうれしいです。
    公の場了解しました。あせらずがんばります。
    回答の文字がとんでもなく大きな文字になっていますが、
    小さく出きないのしょうか?駅伝のようにがんばります。
    回答を試しましたが、cssやかなりjsをDLしてますが、何も表示出来ませんでした。
    セキュリティなのか。もう少しがんばります。


  • id:kn1967
    >大きな文字

    こちら普段はFirefoxなので気づきませんでした。
    IEで確認するとタグの崩れから、とても大きな状態になってますね。
    申し訳ないのですがバグのようなので、このページを見るときには、
    ブラウザの文字サイズを小さくしてお読みください。


    >cssやかなりjsをDL

    先日コメント欄に投稿なさったソースだけしか見れてませんが、
    ページによって、また違うものがあるということなのでしょうか?
    トータルで11個ではないのでしょうか?

    cssやjsについては、入り口となっているページから目的のページまで、
    1ページずつ進みながら、それぞれのHTMLソースで指定されているcssや
    jsファイルを順次調べるという流れになります。
    目的ページまで全て調べ終わったら、次に各jsファイルをメモ帳などで、
    開いて function getToc という形で関数宣言している箇所を探します。
    これによって getToc の入っているファイルを特定し、
    何を行っているかを探ります。


    >何も表示出来ませんでした。

    エラーもでずという事でしょうか?
    その際にアドレス欄は確認しておられますか?
    location.href = getToc('8564','','','','cc777');

    document.write(getToc('8564','','','','cc777'));

    alert(getToc('8564','','','','cc777'));
    などにして確認してみても良いかもしれません。
    今更ですが、それぞれの意味判ります?


    以上はJAVAScriptの中身を解析して、アクセス方法を探る流れですが、
    2つめに提示されたVBAコード(今は消しておられますが)を見ると、
    VBAのほうでも独自に行っている可能性がありそうなので、
    VBAのほうでVBA関数の定義 Sub switchpublication を探したほうが、
    もしかしたら早いかもしれません。


    ※回答欄に記入した時点で、その回答者にはコメント欄の内容が、
     メールで送信されます。ご注意ください。(私の手元には、
    回答した時点から後のコメントがすべてメールで残ってます。
    最初のソースコードは回答前で、コピペしてないので残ってません。)

    ※途中から見た人は何の事やら、さっぱりだと思いますので、
     今一度、整理が必要かもしれません。

    ※メールを見てみると過去にも2回ほど回答させていただいてますね。
     2つ目のコード提示によってVBAから操っているという事が判ったので、
     今後はVBAの方からのアプローチに絞ったほうが楽かもしれません。

    以上、思いつきの羅列でスミマセン。
  • id:shotomo
    確かに整理させてください。はてなサポートに解除をお願いしたいと思います。
    消したソースコード(これは大丈夫と思い記載させてもらいましたが、自分の勘違いでインターネットエクスプローラーでアクセスしたら字が、
    大きくなっているのを見て、いい加減にしろよみたいに思ってしまいました。勘違いでうれしいです。
    javascriptはぜんぜん初心者です。location.href document.write alertも調べます。(違いを)
    switchpublicationはかなり短いVBAコードで書けたので、getTocもいけるかと思ってしまいました。
    また会社で試しますが、1回質問を終了しますね。また復活してきます。
    はてなの仕組みを詳しく教えていただきありがとうございました。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません