#javascript #json #extjs #aem
#javascript #json #extjs #aem
Вопрос:
Есть ли какой-либо способ получить URL-адрес окна внутри Json. Я пробовал ниже, но не работает. JSON используется для отображения виджета. Ниже приведен фрагмент кода.
CQ.wcm.ContentFinderTab.getResultsBoxConfig({
"itemsDDGroups": [CQ.wcm.EditBase.DD_GROUP_ASSET],
"itemsDDNewParagraph": {
"path": "foundation/components/image",
"propertyName": "./fileReference"
},
"noRefreshButton": true,
"tbar": [
CQ.wcm.ContentFinderTab.REFRESH_BUTTON,
"->",
{
"url": "/bin/wcm/contentfinder/asset/viewnew.json" window.location.href;
}, {
"baseParams": {
/*"defaultMimeType": "image"*/
"mimeType": "image"
},
"autoLoad":false,
"reader": new CQ.Ext.data.JsonReader({
"totalProperty": "results",
"root": "hits",
"fields": [
"name", "path", "title", "mimeType", "ddGroups", "size", "lastModified", "ck", "templateParams", "imageWidth", "imageHeight"
],
"id": "path"
})
})
Спасибо
Комментарии:
1. Что вы пытаетесь сделать? Добавление URL-адреса к самому файлу?
2. Что означает «внутри JSON» — показать больше кода
3. На самом деле это обратный вызов, хотите попасть в сервлет с URL-адресом окна в качестве параметра запроса.
4. Когда вы имеете в виду URL-адрес окна, вам нужен только путь к содержимому или весь URL-адрес. Я имел в виду
/content/xyz/something.html
илиhttp://somedomain.com/cf#/content/xyz/something.html
?5. Мне нужно только /content/xyz/something.html или никаких проблем, если я получу полный путь.
Ответ №1:
Здесь нет JSON. Просто объектный литерал
Вам нужно удалить завершающую точку с запятой из объекта, который вы отправляете, и, возможно, добавить имя параметра. Я бы также закодировал URL-адрес
{"url": "/bin/wcm/contentfinder/asset/viewnew.json?url="
encodeURIComponent(window.location.href)
},
Если вам нужен только хэш, вам не нужны ни имя параметра, ни кодирование
{"url": "/bin/wcm/contentfinder/asset/viewnew.json" location.hash},
Если в хэше больше материала, чем вы хотите, вам нужно его разделить
{"url": "/bin/wcm/contentfinder/asset/viewnew.json"
location.hash.split(".html")[0] ".html"
},
или, чтобы быть уверенным:
{"url": "/bin/wcm/contentfinder/asset/viewnew.json"
(location.hash.indexOf(".html")!=-1?location.hash.split(".html")[0] ".html":location.hash)
},
Комментарии:
1. Хорошо, я удалил точку с запятой, но она все еще не работает. Источник моей страницы, показывающий «url»: «/bin/wcm/contentfinder/asset/viewnew.json» window. Расположение. href, а не значение window . location.href
2. Какой источник страницы? getResultsBoxConfig должен получить URL-адрес и что-то с ним сделать.
3. Привет encodeURIComponent(окно. location.hash), похоже, решил проблему, дав мне результат ниже localhost:4502/bin/wcm/contentfinder/asset/viewnew.json#/content/Company/en/Article.html?_dc=1403269699278amp;query=amp;mimeType=imageamp; _ но я не хочу в закодированном формате. просто ищу content/Company/en/Article.html .
4. Поэтому используйте вторую версию БЕЗ кодировки