6

いくつかの列と行のデータを含む単なる SharePoint リストである SharePoint URL があります。

その特定の URL からその情報を読み取り、JavaScript 関数を使用して HTML ファイルにデータを配置したいと考えています。

私は JavaScript と HTML5 の経験がまったくないので、データを取得するためにこれらの関数を呼び出す方法がわかりません。

それは私がこれまでに持っているものであり、まったく機能していません:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <title></title>
    <meta name="description" content="">
    <meta name="viewport" content="width=device-width">
</head>

<script type="text/javascript" src="filelink/jquery-1.6.1.min.js"></script>
<script type="text/javascript" src="filelink/jquery.SPServices-0.6.2.min.js"></script>
<script language="javascript" type="text/javascript">
    $(document).ready(function() {
      $().SPServices({
        operation: "GetListItems",
        webURL: "http://myURL.aspx",
        async: false,
        listName: "Announcements",
        CAMLViewFields: "<ViewFields><FieldRef Name='Title' /></ViewFields>",
        completefunc: function (xData, Status) {
          $(xData.responseXML).SPFilterNode("z:row").each(function() {
            var liHtml = "<li>" + $(this).attr("ows_Title") + "</li>";
            $("#tasksUL").append(liHtml);
          });
        }
      });
    });
</script>
<ul id="tasksUL"/>  
<body>
</body>
</html>

index.html を開こうとしても何も起こらないので、HTML ファイルで関数を呼び出す方法がわかりません。また、HTML ファイルで SP.ClientContext を定義する方法がわかりません。

よろしくお願いします。

4

3 に答える 3

3

SPServices ライブラリは、非常に簡単にそれを行います。

この呼び出しを使用する必要があります。私は通常、コードをきれいにするために独自の関数にカプセル化します。特に、多くの AJAX リスト クエリを作成している場合はそうです。

基本的に何が起こるかというと、SharePoint は、Microsoft Documentationで定義されているすべてのリスト アイテムを含む醜い XML ドキュメントを返します。次のように SPServices を使用して、このドキュメントをトラバースします。

<script type="text/javascript" src="filelink/jquery-1.6.1.min.js"></script>
<script type="text/javascript" src="filelink/jquery.SPServices-0.6.2.min.js"></script>
<script language="javascript" type="text/javascript">

$(document).ready(function() {
  $().SPServices({
    operation: "GetListItems",
    async: false,
    listName: "Announcements",
    CAMLViewFields: "<ViewFields><FieldRef Name='Title' /></ViewFields>",
    completefunc: function (xData, Status) {
      $(xData.responseXML).SPFilterNode("z:row").each(function() {
        var liHtml = "<li>" + $(this).attr("ows_Title") + "</li>";
        $("#tasksUL").append(liHtml);
      });
    }
  });
});
</script>
<ul id="tasksUL"/>`

行ごとに: SPServices を含む SPServices
<script type="text/javascript" src="filelink/jquery-1.6.1.min.js"></script>
には JQuery が必要です "DOM がロードされたら、この関数を実行します" "これは SPServices 関数です" "'GetListItems' Web サービスを使用して います " 're using the list 'Announcements" Don't care about this line "Run this function when the request is complete. データは xData として渡され、完了ステータスは Status として渡されます" "応答文字列を取得し、"行" XML ノード。これらのノードのそれぞれに対して、この関数を実行します..." "li タグと XML 属性 ows_Title に等しい liHtml という変数を作成します" 「このリスト項目を ID が 'tasksUL' の要素に追加します」
<script type="text/javascript" src="filelink/jquery.SPServices-0.6.2.min.js"></script>

$(document).ready(function() {

$().SPServices({

operation: "GetListItems",

async: false,

listName: "Announcements",

CAMLViewFields: "<ViewFields><FieldRef Name='Title' /></ViewFields>",

completefunc: function (xData, Status) {

$(xData.responseXML).SPFilterNode("z:row").each(function() {

var liHtml = "<li>" + $(this).attr("ows_Title") + "</li>";

$("#tasksUL").append(liHtml);

于 2012-11-20T17:19:11.517 に答える
0

コードには多くの問題があります。

まず、SP.ClientContext などの SharePoint 関数を使用しているため、スタンドアロンとしてではなく、SharePoint ページでのみ機能します。

次に、スニペットにエラーがあるようです。たとえば、this.collList実際にはvar collList.

次の他のリファレンスを試してみてください (ただし、SharePoint 2010 または 2013 ページ内でのみ機能します)。

http://msdn.microsoft.com/en-us/library/hh185007(v=office.14).aspx

于 2012-11-20T18:09:47.803 に答える
0

実際に使用しているコードは Symmarc によって作成された SPServices ライブラリ用であり、そのドキュメントには、呼び出しを行うために __REQUESTDIGEST ポスト変数を使用するため、SharePoint コンテキストで実行されているページ内で使用されることが記載されており、これは使用できません通常の HTML5 ページの場合、私が提供できるオプションは次のとおりです:-

1) SharePoint サイトで基本的な Http 認証を有効にしてから、サービスへの呼び出しで基本的な認証資格情報を使用して jquery の $ajax 関数を使用します。

2)作業を行うためのコードを使用して http ハンドラーを作成し、jquery から json を渡して、このハンドラーからデータを取得します。

于 2013-06-11T13:25:01.807 に答える