# decorateCooked에서 baseURI가 유효하지 않음

**URL:** https://meta.discourse.org/t/baseuri-not-valid-in-decoratecooked/250624
**Category:** Development
**Tags:** plugin-api
**Created:** [1월 3, 2023, 10:05오후 UTC](https://meta.discourse.org/t/baseuri-not-valid-in-decoratecooked/250624 "2023-01-03T22:05:10Z")
**Posts on this page:** 3
**Page:** 1

<div class="post-metadata">

### Author: ![markschmucker](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/markschmucker/32/141599_2.png) [@markschmucker](https://meta.discourse.org/u/markschmucker)
#### Post date: [1월 3, 2023, 10:05오후 UTC](https://meta.discourse.org/t/baseuri-not-valid-in-decoratecooked/250624/1 "2023-01-03T22:05:10Z")

</div>

```plaintext
api.decorateCooked($elem => {
    var uri = $elem[0].baseURI;
});

```

`uri` 값이 일관되지 않습니다. 다음 값 중 하나가 대략 동일한 빈도로 반환됩니다.

- [https://forum.example.com/t/test-topic-1/43803](https://forum.example.com/t/test-topic-1/43803) (기대되는 동작)
- [https://forum.example.com](https://forum.example.com)
- about:blank
- (빈 값)

---

<div class="post-metadata">

### Author: ![Canapin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/canapin/32/119591_2.png) [@Canapin](https://meta.discourse.org/u/Canapin)
#### Post date: [1월 3, 2023, 10:18오후 UTC](https://meta.discourse.org/t/baseuri-not-valid-in-decoratecooked/250624/2 "2023-01-03T22:18:22Z")

</div>

정확히 무엇을 달성하고 싶으신가요?  
(아직도, 불행히도) 저는 코드 마법사는 아니지만, 그건 레이스 컨디션(race condition)처럼 보입니다.

무엇을 하려는지 모르므로 중요하지 않을 수도 있지만, 혹시 모르니 코드를 다음과 같이 작성해 보시는 건 어떨까요?

```js
api.onPageChange(() => {
    // 현재 어느 페이지에 있는지 확인해야 한다면 예시 코드
    const router = api.container.lookup('service:router');
    console.log(router.currentRoute.name);
}

```

---

<div class="post-metadata">

### Author: ![markschmucker](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/markschmucker/32/141599_2.png) [@markschmucker](https://meta.discourse.org/u/markschmucker)
#### Post date: [1월 3, 2023, 10:27오후 UTC](https://meta.discourse.org/t/baseuri-not-valid-in-decoratecooked/250624/3 "2023-01-03T22:27:55Z")

</div>

다음과 같은 작업을 시도하고 있습니다:

> [@PluginAPI에서 토픽 슬러그 또는 ID를 가져오는 방법?](https://meta.discourse.org/t/how-to-get-topic-slug-or-id-from-pluginapi/250362):
>
> PluginAPI 초보입니다. 아래와 같은 동작하는 스크립트가 있습니다: api.decorateCooked($elem =\> { var iframes = $elem[0].querySelectorAll('iframe'); var uri = $elem[0].baseURI; // 토픽에 따라 iframes를 수정하는 로직 }); 저는 uri를 다른 데이터베이스의 키로 사용하여 iframes를 어떻게 수정해야 하는지 파악하고 있습니다. 하지만 토픽이 이동하면 이 방식이 깨질 것 같습니다. 어쨌든 토픽 ID나 슬러그를 사용하는 것이 더 좋다고 생각합니다. PluginAPI를 통해 이 정보들을 가져올 수 있는 방법이 있을까요?

window.location.href를 대신 사용할 수 있을 것 같지만, 일관되지 않은 동작에 대해 언급하고 싶었습니다.

이 분야에 아주 초보라서, 제안하신 대로 decorateCooked를 언제 사용하고 onPageChange를 언제 사용해야 하는지, 그리고 어떤 다른 이벤트가 있을 수 있는지 이해하지 못하고 있습니다.
