웹한글기안기 스크롤 질문 있습니다.

var ScrollPosSet;
ScrollPosSet = HwpCtrl.ScrollPosInfo;
ScrollPosSet.SetItem(“HorzPos”, 0);
ScrollPosSet.SetItem(“VertPos”, 0);
HwpCtrl.ScrollPosInfo = ScrollPosSet;

위 코드를 이용해서 스크롤을 가장 위로 올리려는 시도를 했는데
적용이 안될 때가 있습니다.

위와 같은 상황에 사용할 수 있는 다른 방법이 있을까요?

안녕하세요.

캐럿이 옮겨지는 것이 상관 없으시다면 다음의 MovePos로 문서의 시작으로 이동하는 방법도 있습니다.
(캐럿 이동시 화면갱신이 이뤄지므로 반드시 스크롤이 초기로 이동됩니다.)

HwpCtrl.MovePos(2);

말씀해주신 방법으로 시도했는데 스크롤이… 안올라가고 있습니다.
문서의 페이지가 많아서 그런건지…

HwpCtrl.ShowToolBar(false);
HwpCtrl.ShowRibbon(false);
스크롤 설정전에 툴바, 리본메뉴를 안보이게 하는 함수가 영향이 있는건지…

스크롤을 꼭 최상단으로 올리고 싶은데 방법이 있으면 알려주시면 감사하겠습니다.

scroll을 변경하는 함수 앞뒤 과정에 다른 함수를 호출하는 것이 있을까요?

특정 동작에 연계되어서 동작시키는 것이라면, 서로 영향을 줄 수 있을 것 같습니다.

HwpCtrl.EditMode = 0;

var vp = HwpCtrl.CreateSet(“ViewProperties”);
vp.SetItem(“ZoomType”, 2); // 화면 확대 종류
vp.SetItem(“ZoomRatio”, 100); // 화면 확대 비율
HwpCtrl.ViewProperties = vp;

대충 그 전의 함수는 앞서 말한 툴바, 리본메뉴 관련된거와
위의 editmode, 화면 확대관련 함수 말고는 없습니다.
스크롤에 관련된건 없습니다…

전달해주신 코드로 간단히 테스트해보면 화면갱신 중에 HwpCtrl.ScrollPosInfo의 값을 변경했을 때 변경값이 씹히는 현상이 발생됩니다.
그런데 그럴수 밖에 없는게 툴바/리본을 접는 행위나 viewport의 값을 변경하면 필히 scrollpos 값이 재계산되기 때문에 정상적으로 동작될 수 없습니다.

view 갱신이 끝난 후 scroll을 변화시켜야 할 것 같은데요…
아래처럼 setTimeout()을 이용해서 적절히 view 갱신 후에 스크롤 동작이 일어날 수 있도록 해보시는 건 어떨까요?

HwpCtrl.EditMode = 0;

var vp = HwpCtrl.CreateSet(“ViewProperties”);
vp.SetItem(“ZoomType”, 2); // 화면 확대 종류
vp.SetItem(“ZoomRatio”, 100); // 화면 확대 비율
HwpCtrl.ViewProperties = vp;

setTimeout(100, function() {
  var ScrollPosSet;
  ScrollPosSet = HwpCtrl.ScrollPosInfo;
  ScrollPosSet.SetItem(“HorzPos”, 0);
  ScrollPosSet.SetItem(“VertPos”, 0);
  HwpCtrl.ScrollPosInfo = ScrollPosSet;
});

setTimeout을 적용시키니까 잘 작동하고 있습니다.
그런데 궁금한게 view갱신이 끝났음을 명시적으로 알 수 있는 방법이 없을까요?
setTimeout을 이용하지않고 스크롤 동작이 일어나는 방법은 없나해서요…
서버에 따라 setTimeout이 적용 안되는 경우가 있을거 같아요

아쉽게도 view 갱신의 종료시점을 알 수 있는 방법은 없습니다.

여러가지 질문에 대답해주셔서 감사합니다~
많은 도움이 됐습니다.