Отладчик Dynamics 365 / CRM Chrome работает неправильно - PullRequest
1 голос
/ 07 октября 2019

Я потратил на это больше времени, чем хотел бы признать, но надеялся на некоторую помощь в понимании причины проблемы. У меня есть базовый веб-ресурс HTML в Dynamics 365 (v9.1.0.9228), и для получения глобального контекста я должен включить следующее:

<script src="ClientGlobalContext.js.aspx" type="text/javascript"></script>

https://docs.microsoft.com/en-us/powerapps/developer/model-driven-apps/clientapi/reference/getglobalcontext-clientglobalcontext.js.aspx

проблема в том, что когда я это делаю ... отладчик Chrome теряет свое место в документе. Выполнение останавливается в точке (точках) останова, но текущая строка не подсвечивается, это означает, что нет никакого способа войти в / над линиями или действительно узнать, на какой линии мы находимся в любой данной точке. Однако я вижу, что код выполняется из-за моего вывода на консоль (см. Код в нижнем колонтитуле).

Я проверил это на:

  • Несколько онлайн-экземпляров D365 (v9.1.0.9228)
  • Несколько машин для разработки под управлением Chrome (v77.0.3865.90) ​​

Буквально вернул код в базовый HTML-код. Интересно, эта проблема не возникает в IE? Единственный обходной путь, который я нашел, заключается в том, что вместо встроенного JS внутри тегов head поместите его в отдельный файл и используйте ссылку из веб-ресурса HTML. В этом случае Chrome, похоже, не имеет проблем с остановкой в ​​правой строке и выделением правильной строки во время отладки. НО работает только в этой библиотеке. Если веб-ресурс HTML имеет встроенный скрипт, проблема все еще будет присутствовать в этой области.

head

    <script type="text/javascript" src="ClientGlobalContext.js.aspx"></script>
    <script type="text/javascript">

        function registerEvents() {
            debugger;
            console.log("in registerEvents v2.0.3");
            testButton = document.getElementById("test");
            testButton.onclick = test;
        }

        function test() {
            debugger;
            console.log("in Test v2.0.3");
        }

    </script>

body

    <script type="text/javascript">
        registerEvents();
    </script>

    <p>In chrome debugger v2.0.3</p>
    <button id="test">Test</button>

Я хотел бы понять, если я что-то здесь не так делаю, так как кажется, что это ошибка в самом Chrome DevTools, учитывая, что это работает во всех других браузерах при отладке? Фактический код здесь почти не имеет значения, так как проблема возникает всякий раз, когда ссылается на «ClientGlobalContext.js.aspx», если мы закомментируем эту строку, что отладчик Chrome работает должным образом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...