Office365 용 클라이언트 측 스크립팅 만 사용하는 구성 요소를 구축 중입니다. 목록에서 몇 가지 값을 가져 와서 드롭 다운 목록에 표시합니다.클릭시 스크립트 태그 속성 업데이트
그런 다음 링크를 클릭하면 스크립트 태그의 ID와 SRC가 설정됩니다. 스크립트 태그가로드되고 다른 사이트의 위젯이 표시됩니다.
그러나이 기능은 처음으로 링크의 onclick 이벤트를 트리거 할 때만 작동합니다. 다음 번에이 작업을 시도하면 스크립트 태그가 더 이상 업데이트되지 않습니다.
처음 jquery가 스크립트 태그를 찾습니다. SRC 및 ID 속성이 올바르게 업데이트 된 배열이 [0] 배열에 있습니다.
두 번째로 onclick 이벤트가 발생하면 스크립트 태그를 찾을 수 있지만 태그에 동일한 [0] 배열이 없으므로 SRC 및 ID 속성이 브라우저에서 업데이트된다는 것을 알지 못합니다. 디버거.
누구나 두 번째 클릭에서 개체가 유사하지 않은 이유를 알 수 있습니다. 또는 첫 번째 클릭뿐만 아니라 클릭 할 때마다 스크립트 태그를 업데이트하는 방법을 알고 계십니까?
모두에게 감사드립니다!
/* triggered on click of a link */
function OnUserSelectionMade(selection)
{
if (!((selection == null) || (selection == undefined)))
{
var WolframWidgetURL = "https://www.wolframalpha.com/widget/widget.jsp?id=";
var ScriptTagID = "WolframAlphaScript";
var WidgetID = GetDDLSelection();
WolframWidgetURL = WolframWidgetURL + WidgetID;
ScriptTagID = ScriptTagID + WidgetID;
/* works only the first time you click */
var aScriptTag = $('script[id*="WolframWidgetScriptTag"]');
aScriptTag.attr("id", ScriptTagID);
aScriptTag.attr("src", WolframWidgetURL);
}
}
/* Gets the currently selected item in the dropdown's value */
function GetDDLSelection()
{
var ddlWidgetSelector = $('#ddlWidgetSelector option:selected');
return ddlWidgetSelector.val();
}
$(document).ready(function() {
window.g_WidgetListItems = null;
ExecuteOrDelayUntilScriptLoaded(FillDropDownList, "sp.js");
// attach event for selecting an item from the drop down list
$("#aWidgetSelectorLink").click(function() {
OnUserSelectionMade(this);
});
});
여분의 눈 쌍을 가져 주셔서 감사합니다. 그렇지 않으면 버그를 찾지 못했을 것입니다. 코드의 요점은 스크립트 태그의 URL과 ID를 업데이트하여 다른 사이트에서 위젯을 가져 오는 것입니다. – JurgenW