Не знаю, имеете ли вы это в виду, но внутри моего JavaScript-файла я могу использовать объектную модель, если сначала объявлю эти три строки.
/// <reference name="MicrosoftAjax.js" /><br>
/// <reference path="file://C:/Program Files/Common Files/Microsoft Shared/Web Server Extensions/14/TEMPLATE/LAYOUTS/SP.core.debug.js" /><br>
/// <reference path="file://C:/Program Files/Common Files/Microsoft Shared/Web Server Extensions/14/TEMPLATE/LAYOUTS/SP.debug.js" />
Это соответствующий код, работает без вызова с {SelectedItem} или прочее:
var items = SP.ListOperation.Selection.getSelectedItems();<br>
var listID = SP.ListOperation.Selection.getSelectedList();
Это загружает (части) клиентской объектной модели, так что я думаю, что вы можете продолжить. Потому что это поддерживается IntelliSense.
Edit2:
Другой способ получить и использовать список только с JavScript - это
var web;
var context;
var listTitle = "ListName";
function InitiateThisScript(itemId) {
context = new SP.ClientContext.get_current();
web = context.get_web();
list = web.get_lists().getByTitle(listTitle);
item = list.getItemById(itemId);
context.load(web;
context.load(list);
context.load(item);
context.executeQueryAsync(handleItem(item, list));
}
Этот способ требует в вашем Elements.xml, где я определил свои кнопки, что вы называете это
CommandAction="javascript:InitiateThisScript('{SelectedItemId}','');" />
Edit3: будьте осторожны при использовании этого JavaScript без каких-либо проверок безопасности. Потому что, например, вы доставили это решение на сайт, на котором есть два списка. Первый, который вы предложили иметь этот JavaScript, а второй. Если у вас есть пользовательские кнопки, которые появляются в обоих списках, вы работаете со вторым списком, но с помощью кнопок запускаете первый список настолько долго, насколько это возможно.
Допустим, у вас есть кнопка, которая очищает содержимое, и у вас есть в обоих списках столбец с названием «заголовок». Если вы попали во второй список и нажали кнопку «удалить заголовок», то в вашем первом списке заголовок из элемента с таким же идентификатором будет удален. По твоему второму списку ничего не происходит.
Это видно из видимости ваших кнопок и отсутствия проверки, является ли назначенный список тем, над которым вы работаете.
Shegit
Редактировать: прокручивая свои вкладки, я нашел эту: Получить элементы из папки с помощью EcmaScript & COM