꽤 많은 기사를 읽었으며 몇 가지 방법을 시도했지만 작동하지 못했습니다.전달 된 URL 문자열이 문자열로 해석되지 않습니다.
htmlCode += '<button id="' + addButtonId + '" title="' + addButtonTitle + '" class="button" onclick="getProductUrl(' + url + '); return false;"><span><span>' + addWithButonTitle + '</span></span></button>';
및 기능 자체는 :
getProductUrl: function(url) {
return setLocation('\'' + decodeURIComponent(url) + document.getElementById('qty_field').value + '\'');
},
명백하게, url
의 스트링 값은 문자열로 간주되지 않는다. 브래킷이없는 오류가 발생합니다 : getProductUrl(http:
^//...rest of the url
. 물론 문제는 괄호 안에 없지만 //
은 주석의 시작으로 처리됩니다.
그럼 내가해야 할 일은이 url
문자열 값을 올바르게 문자열로 전달하는 것입니다. decodeURIComponent(url)
문자열을 반환해야하기 때문에 나는 (먼저 디코딩 및 통과를 시도 또한 내가 String(url)
및 url + ""
을 시도 또한 어떻게 든 특수 문자 이스케이프 :... url.replace('/','\/')
심지어 /g
꼬추, 전혀 작동하지 않았다
을 그래서, 이 모든 접근은 실패했다 정말 힌트 또는 여기에 대한 해결책을 부탁드립니다
'onclick = "getProductUrl ('+ url + ');"을 둘러싼 코드는 무엇입니까? 그게 완벽한 라인이 아닌가 싶습니다. –
@FelixKling - 전체 코드를 입력하여 질문을 업데이트했습니다. :) – Syspect
그 경우 코드는 다음과 같아야합니다 : 'htmlCode + = ''; ' – peerless