2012-10-24 2 views
0

window.open()을 사용하여 창에서 다른 페이지로 양식을 게시합니다. 내가 가진 문제는 창이 열리면 비어있는 상태가되고 원래 브라우저 창은 팝업 창에 있어야하는 페이지로 리디렉션됩니다.IE 9에서 window.open이 빈 창을 엽니 다.

크롬에서는 정상적으로 작동하지만 IE는 정상적으로 작동하지 않습니다.

도움을 주시면 대단히 감사하겠습니다. 감사합니다

* 편집 *

나는 개념적인 문제가이 생각했기 때문에 내가 코드를 게시하지 않았다. 전에 말했듯이, 다른 브라우저에서는 작동하지만 IE에서는 작동하지 않습니다. 그래서 나는 내 코드가 작동하는 것을 알고있다.

형태 :

<form id="SCartFormId"> 
    <input type="hidden" name="merchantKey" value="E0FU0E14-CC2D-C88N-6TDQ-0A08CCD05610" /> 
    <input type="hidden" name="orderNumber" value="321654" /> 
    <input type="hidden" name="descriptor" value="Test Environment" /> 
    <input type="hidden" name="cart[0].sku" value="V4C3D5C2" /> 
    <input type="hidden" name="cart[0].name" value="Halls" /> 
    <input type="hidden" name="cart[0].unitprice" value="100" /> 
    <input type="hidden" name="cart[0].quantity" value="10" /> 
    <input type="hidden" name="shippingMethodCollection[0].name" value="USPS" /> 
    <input type="hidden" name="shippingMethodCollection[0].price" value="200" /> 
    <input type="hidden" name="descriptor" value="" />    
</form> 

자바 스크립트 : 함께 즉석에서이 버튼이 생성

S.Widgets = {}; 
S.Widgets.PostWidget = (function(widget){ 
    var merchantId = widget.merchantId; 
    var originForm = widget.orderInput.value; 

    var render = (function(target) {var targetHtml = document.getElementById(target), 
    button = document.createElement('button'), 
    sForm = document.getElementById(originForm);      

    button.innerText = "Checkout"; 

    button.onclick = function(){ 
    window.open('', 'SWidget', 'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=yes, width=840, height=840'); 
    sForm.submit(); 
    };    
    return { 
    render: render 
    }; 
}); 

:

당신이 코드가 필요하지만, 여기의 샘플입니다
new S.Widgets.PostWidget({ 
    merchantId: 'AEIOU1234AEIOU', 
    orderInput: {value: 'SCartFormId'} 
}).render("sButtonId"); 
+4

문제를 추적 할 수 있도록 코드를 제공해야 할 수도 있습니다. –

+8

** 당신의 코드를 보여주세요! ** – epascarello

+0

@epascarello * 어쩌면 나는 explicative 문장을 만들지 않아야합니다 * :) –

답변

1

설명하는 내용을 나타내는 두 줄의 코드는 다음과 같습니다.

// Open a window at URL '' (thus, blank window) 
window.open('', 'SWidget', 'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=yes, width=840, height=840'); 

// Submit the form (plain submit, no jQuery.ajax) 
// I don't see any jQuery on your code 
sForm.submit(); 
이 당신이 원하는,하지만 만약 내가 확실하지 않다

무엇 단지 _blank 폼의 target 속성을 설정하고, window.open 라인을 제거하는 방법에 대한?

+0

그래, jquery는 내가 복사하지 않은 코드의 다른 부분에 ... jquery/ajax 게시물은 내 질문을 downvoting하고 "코드, 코드, 코드"를 묻는 사람들과 함께 진행하면서 설명하는 것을 혼란스러워했다. 좀비가 뇌를 요구합니다! : p – leobelones

+0

또는 여러 게시물에 대해 창을 다시 사용하려면'target = "SWidget"을 설정하십시오. – Neil

+1

@leobelones 코드의 일부를 보여주지 않았기 때문에 내 의견이 아직 남아 있기 때문에 편집을 거부했습니다. 좀비의 경우 : 예, 스택 오버플로 가끔 약간 가혹할 수 있습니다. 협박하지 말고 [faq] (http://stackoverflow.com/faq) 전체를 읽으십시오. 더 많은 질문을 게시하면이 사이트에서 효과가있는 것이 무엇인지 더 잘 이해할 수 있습니다. [this] (http://msmvps.com/blogs/jon_skeet/archive/2010/08/29/writing-the-perfect-question.aspx)도 도움이됩니다. 이 사이트의 목적은 각 개인을 돕는 것이 아니라 미래의 방문객을위한 자료가된다는 것을 명심하십시오. – bfavaretto

관련 문제