2010-09-18 10 views
7
ZeroClipboard.setMoviePath("/zeroclipboard/ZeroClipboard.swf"); 
var clip = new ZeroClipboard.Client(); 
clip.setText($('textarea#download_me').text()); 
clip.glue('clip'); 

मैं उपयोगकर्ता के क्लिपबोर्ड पर सामग्री की प्रतिलिपि बनाने के लिए लोकप्रिय ज़ीरोक्लिबोर्ड प्लगइन का उपयोग कर रहा हूं। यह dev enviornment के साथ-साथ domain1.com पर पूरी तरह से काम करता है लेकिन डोमेन 2.com पर बिल्कुल उसी फाइल और सेटिंग्स के साथ नहीं!ज़ीरोक्लिबोर्ड एसडब्ल्यूएफ लोड नहीं होता

/zeroclipboard/ZeroClipboard.js भार।

/zeroclipboard/ZeroClipboard.swf लोड नहीं होता है!

मैंने सब कुछ करने की कोशिश की लेकिन इसे काम पर नहीं लाया जा सकता। मैं वास्तव में उलझन में हूं कि यह डोमेन 1 पर क्यों काम करता है लेकिन डोमेन 2 पर नहीं ??

मैं यह कैसे ठीक करूं?

आपकी मदद के लिए बहुत धन्यवाद!

+0

आप (पूर्ण पथ) – Dezigo

+0

ZeroClipboard.setMoviePath ("domain2.com/js/zeroclipboard/ZeroClipboard.swf") लोड करने का प्रयास कर सकते हैं; – Dezigo

+0

यदि यह काम कर रहा है .. - यह पथ के साथ एक समस्या है। – Dezigo

उत्तर

2

http://kenneth.kufluk.com/blog/2008/08/cross-domain-javascript-to-flash/ मदद मिल सकती है। उपडोमेन से सावधान रहें, फ्लैश भ्रमित हो सकता है। क्या चल रहा है यह देखने के लिए फ्लैश डीबग प्लेयर और फिडलर (या इसी तरह) का भी उपयोग करें।

2

यदि यह फ़ाइल आपके वेब पेज के समान निर्देशिका में स्थित है, तो यह बॉक्स से बाहर काम करेगी। हालांकि, अगर SWF फ़ाइल कहीं और होस्ट किया गया है, तो आप इस तरह URL सेट (स्क्रिप्ट टैग के बाद इस कोड को जगह) की जरूरत है:

ZeroClipboard.setMoviePath('http://YOURSERVER/path/ZeroClipboard.swf'); 

शून्य क्लिपबोर्ड 1.0.7 में नई रिच एचटीएमएल सुविधा उपलब्ध का उपयोग करने के लिए, आपको मूवी पथ को "ZeroClipboard10.swf" फ़ाइल में सेट करना होगा, जिसे 1.0.7 संग्रह में शामिल किया गया है। उदाहरण:

ZeroClipboard.setMoviePath('ZeroClipboard10.swf'); 

या, किसी कस्टम स्थान वर्तमान निर्देशिका के अलावा अन्य में:

ZeroClipboard.setMoviePath('http://YOURSERVER/path/ZeroClipboard10.swf'); 
+0

'ZeroClipboard10.swf' का उपयोग करने का प्रयास अभी भी काम नहीं करता है। यह बहुत अजीब है, मैंने पथ और सबकुछ की जांच की है लेकिन फिर भी यह डोमेन 1 पर काम नहीं करता है, लेकिन डोमेन 2 पर अच्छा काम करता है! – 3zzy

+0

मुझे पता चला कि मुझे समस्याएं थीं फ़ाइल का नाम बदल दिया। – Rimian

0

फ़ाइल के लिए अनुरोध/प्रतिक्रिया कैसा दिखता है, यह देखने के लिए Fiddler आजमा सकते हैं।

2

क्रॉस डोमेन संपत्ति के लिए विकल्प हैं:

// SWF inbound scripting policy: page domains that the SWF should trust. (single string or array of strings) 
    trustedDomains: [window.location.host], 

देखें: https://github.com/zeroclipboard/zeroclipboard/blob/master/docs/instructions.md

इसके अलावा: वर्तमान मास्टर शाखा (2.x) पार डोमेन लॉग यदि आप सत्य पर डिबग सेट सांत्वना देने कॉन्फ़िगरेशन में

मुझे एसएफएफ फ़ाइल के सीडीएन होस्टेड संस्करण का उपयोग करके कुछ सफलता मिली। लेकिन कुछ संपादन करने के बाद इस रहस्यमय तरीके से स्थानीय रूप से काम करना बंद कर दिया लेकिन मेरे स्टेजिंग सर्वर पर काम किया।
http://jsfiddle.net/rimian/45Nnv/

आप अभी भी समस्या आ रही है, तो आप swf सांत्वना देने से प्रवेश कर सकते हैं:

ZeroClipboard.config({ 
    moviePath: '//cdnjs.cloudflare.com/ajax/libs/zeroclipboard/1.3.2/ZeroClipboard.swf', 
    forceHandCursor: true, 
    debug: true 
    }); 

इसके अलावा इस jsfiddle देखें:

यह मेरा config है। इसके लिए, आपको zeroclipboard source से grunt mxmlc का उपयोग करके एक swf में फ़्लैश को संकलित करने में सक्षम होना चाहिए।सीधे शब्दों में कार्रवाई स्क्रिप्ट में एक लॉग घटना प्रेषण (संकलन और अपनी परियोजना में कॉपी) और अपने js में उसका जवाब दे:

उदाहरण के लिए, ZeroClipboard.as में:

// constructor, setup event listeners and external interfaces 
public function ZeroClipboard() { 

    ... 

    // Get the flashvars 
    var flashvars:Object = LoaderInfo(this.root.loaderInfo).parameters; 

    dispatch("log", flashvars); 

    ... 

    } 
अपने js में

तब:

zeroclipboard = new ZeroClipboard($('.mybuttons')) 
zeroclipboard.on('log', function(client, args) { console.log('log:', args)}); 
0

मैं ZeroClipboard.min.js

return a+"ZeroClipboard.swf" 

पर इस लाइन संपादन करने के लिए हल:

return "//YOUR/PATH/TO/ZeroClipboard.swf" 
0

मूवीपाथ और swfPath दोनों को सेट करने के लिए मेरे लिए काम किया।

ZeroClipboard.config({ moviePath: '/assets/ZeroClipboard.swf', swfPath: '/assets/ZeroClipboard.swf', debug: true }); 
संबंधित मुद्दे