-1

私はインラインでいくつかの調整を行う必要がある Web アプリケーション (Sharepoint) を使用しています。アプリケーション自体は非常に強力ですが、一部の領域には制限があります。たとえば、この例では、写真の onlick イベントを作成しようとしています。制限があるため、これを達成することはできません。(sharepoint を知っている場合は、wiki ページの制限を知っています) したがって、私の目標は、画像を見つけて onclick イベントを挿入する (サポートされている) ページに JavaScript を実際に実装することです。

私が直面している問題は、単純な検索と置換さえも機能していないように見えることです。ほとんどの例はテキスト ノードを参照しているように見えますが、私はその用語についてよく知りません。

私はいくつかのガイダンスを探しています。ありがとう!


(これは回答ではありませんが、コメントが短すぎます) いくつかの問題を解決しようとしています。これがその1つです。あるサイトにドキュメント ライブラリがあり、別のサイトに埋め込まれています。ユーザーがドキュメントをクリックすると、ドキュメント ライブラリの非常に小さなウィンドウ内にドキュメントが表示されます。私が達成したいことの 1 つは、URL に「target=_blank」を追加して、まったく新しいブラウザー ウィンドウで開くことです。残念ながら、このドキュメント リストは動的であるため、その場で行う必要があります。2 番目の課題は、前述のイメージです。この場合、データを別の Web パーツに更新する小さなセレクター矢印があります。これは機能しますが、画像をクリックする方がはるかに便利です。繰り返しますが、コンテンツは動的です。この状況では、矢印から URL を読み取る必要があります。画像をクリックできるように動的に変更します。私は Web 開発の手法が得意ではないため、これは私の能力の範囲を超えている可能性があります。私はむしろコンパイラのような人です。;) 私が試したことはすべて概念実証にすぎないため、提供するコード例はありません。いくつかの提案とともに、これをもう一度見ていきます。ありがとう。

4

2 に答える 2

1

JavaScript で HTML を編集してイベント ハンドラーを追加しようとしている理由がわかりません。これは通常、DOM と対話してイベント ハンドラーを追加する方法ではありません。

最も簡単な方法は、jQuery を使用し、それを使用して適切なセレクターを持つ要素を見つけ、イベント ハンドラーを追加することです。私はこれを以前に SharePoint プロジェクトで問題なく使用しました。

行の行に沿った何かが開始する場所になります (ただし、セレクターは DOM 内のすべての img タグに対してクリック イベント ハンドラーを引き起こします)。

$('img').click(function(){/クリックするとここにコードが表示されます/});

于 2013-03-26T19:54:22.170 に答える
0

jQuery を避けたい場合は、次のようなものがうまく機能します。

function search(scope, tagName, attr, query) {
    tagName = scope.getElementsByTagName(tagName);
    var size = tagName.length;
    var results = new Array();
    for (var i = 0; i < size; i++) {
        if (tagName[i].getAttribute(attr) == query)
            results.push(tagName[i]);
    }
    return results;
};

上記の関数は、渡されたスコープのクロスブラウザー クエリを実行します。そのため、ドキュメント内でクラスとして 'Clickable' を持つすべての画像を検索する場合は、次のようにします。

var images = search(document, 'img', 'className', 'Clickable');
for (var i = 0; i < images.length; i++) {
    images[i].onclick = onClickFunction; // onClickFunction being whatever you write.
}
于 2013-03-26T20:55:53.337 に答える