어제 물어 본 question의 후속 조치입니다.웹 페이지에 코드를 삽입하면 작동하지 않습니다.
사용자 스크립트 (GreaseMonkey 스크립트와 비슷하지만 Chrome 용)가 있습니다.
아이디어는 텍스트 상자와 버튼을 페이지에 추가하는 것입니다. 그런 다음 사용자가 버튼을 클릭하면 물건을 수행하는 기능이 시작됩니다. 따라서 텍스트 상자, 버튼 및 함수를 페이지에 삽입합니다. 사용자가 버튼을 클릭하면 Chrome 콘솔에 "Uncaught TypeError : object is not function"이라고 표시됩니다. 그래서 분명히 방금 주입 한 함수가 보이지 않고 단추에 대한 onclick
이벤트에 지정되어 있습니다.
initialize();
function initialize() {
var dropDown = document.getElementById("tstGlobalNavigation_ddlChooseProject");
// add a textbox
dropDown.innerHTML = dropDown.innerHTML + " <input type='text' name='txtSearch' style='position:absolute;top:8px;left:800px;width:50px' >";
// add a button
dropDown.innerHTML = dropDown.innerHTML + " <input type='button' name='btnSearch' value='Go' onclick='fn()' style='position:absolute;top:8px;left:860px;width:35px'>";
addScript("var obj = document.getElementById('txtSearch'); "
+ "if (obj != null) { "
+ " var incidentId = document.getElementById('txtSearch').value; "
+ " var currentURL = location.href; "
+ " var splitResult = currentURL.split('/'); "
+ " var projectId = splitResult[4]; "
+ " location.href = 'http://dev.myApp.com/ProductTeam/' + projectId + '/Incident/' + incidentId + '.aspx'; "
+ " }"
, "fn");
}
function addScript(contents, id) {
var head, script;
head = document.getElementsByTagName('head')[0];
script = document.getElementById(id);
if(script != undefined) {
head.removeChild(script);
}
script = document.createElement('script');
script.type = 'text/javascript';
script.id = id;
script.innerHTML = contents;
head.appendChild(script);
}
내가 여기 실종 무엇 :
그래서 나는이 같은 코드가?
어디에서 이벤트 처리기를 바인딩합니까? – Dexter
이 코드는 문제의 원인이 아닙니다. 이벤트 처리기를 바인딩하는 곳에 코드를 게시하면 도움이 될 것입니다 – Alex
@Alex, @Dexter - 미안하지만, 어떻게 든 처리기가 복사/붙여 넣기 작업에서 먹혔습니다. – AngryHacker