У меня общая функция:
function getUrl() {
return Xrm.Page.context.getClientUrl() + "/api/data/v9.0/";
}
Но иногда мне нужно использовать родительский фрейм для получения URL-адреса, например:
function getUrl() {
return window.parent.Xrm.Page.context.getClientUrl() + "/api/data/v9.0/";
}
Могу ли я объявить эту общую функцию с возможностью передачи window.parent., если мне это нужно?
А если параметр не передан, воспользуйтесь общей реализацией.
Все аргументы в JavaScript необязательны. В чем проблема?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Просто используйте параметр:
function getUrl(_use_parent){
let url;
if (_use_parent)
url = window.parent.Xrm.Page.context.getClientUrl();
else
url = Xrm.Page.context.getClientUrl();
return url + "/api/data/v9.0/";
}
Если вы просто вызываете getUrl (), _use_parent не определен, поэтому он использует оператор else.
[править] И если вы действительно хотите передать window.parent
function getUrl(_window_parent){
let url;
if (_window_parent)
url = _window_parent.Xrm.Page.context.getClientUrl();
else
url = Xrm.Page.context.getClientUrl();
return url + "/api/data/v9.0/";
}
Но если _window_parent - неправильный объект, вы можете получить ошибку JavaScript.
Конечно, передать его как параметр в
getUrl?