Comments (5)
I had a similar issue with prerender-spa-plugin. I recommend you run a quick post-processing on the prerender-spa-plugin output and strip out the recaptcha script tags. Your Vue instance will re-insert them when it takes over from the pre-rendered page. Here is what I used in my prod webpack file:
Ignore the stuff about toasted-vue, that also causes a problem if it renders a toast inside the phantomjs prerender. You will need to install cheerio (npm --save install cheerio ).
// Recommended for SEO http://vuejs-templates.github.io/webpack/prerender.html
// https://www.npmjs.com/package/prerender-spa-plugin
// Be sure to add this https://github.com/chrisvfritz/prerender-spa-plugin/pull/54
// Otherwise PhantomJS polyfill does not get injected
new PrerenderSpaPlugin(
// Path to compiled app
path.join(__dirname, '../dist'),
// List of endpoints you wish to prerender
[ '/', '/terms', '/privacy', '/contact' ],
{
captureAfterTime: 10000,
navigationLocked: true,
postProcessHtml: function (context) {
// Post Process the static rendered HTML to clean up some issues
var $ = cheerio.load(context.html)
// Remove cookie notification popup
// <div id="toasted-container" class="bottom-right"> ... </div>
$('#toasted-container').remove()
// Remove recaptcha script tags
// <script type="text/javascript" async="" src="https://www.gstatic.com/recaptcha/api2/r20170629165701/recaptcha__en.js"></script>
// <script src="https://www.google.com/recaptcha/api.js?onload=vueRecaptchaApiLoaded&render=explicit" async="" defer="" data-vue-meta="true"></script>
var recaptchaRegex = /recaptcha/i
$('head').find('script').each(function (i, elem) {
if (recaptchaRegex.test($(this).attr('src'))) {
$(this).remove()
}
})
return $.html()
}
}
You may also find that setting navigationLocked=true seems to fix the recaptcha most of the time...
from vue-recaptcha.
Sorry for late reply.
Seem prerender-spa-plugin is using phantomjs to capture html output.
Thus it is not support by Google reCAPTCHA.
So I don't think this is an issue related to vue-recaptcha.
But after a little try on prerender-spa-plugin.
I notice that reCAPTCHA will re-render in a real browser.
So maybe using the prerender plugin won't be a problem.
from vue-recaptcha.
Thanks for answering. Still I cannot figure it out. Which is unconvenient as you can guess... Maybe would you provide an example of your implementation please ? I know this is not an issue but I'm stuck with this and didn't find any help out there till now.
Thanks
from vue-recaptcha.
But actually I didn't do anything.
Seem reCAPTCHA just re-render automatically.
from vue-recaptcha.
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
from vue-recaptcha.
Related Issues (20)
- useRecaptcha() is called without a provider HOT 4
- How to reset Checkbox?
- Nuxt3: Invisible recaptcha visible (dev & prod) HOT 3
- Object.hasOwn is not a function HOT 3
- how to implement in nuxt3 ? HOT 1
- Set recaptcha key dynamically
- Nuxt 3 disable recapthca when needed HOT 1
- Auto execute blocks default browser validation
- Wont working
- Error: Can't resolve '@unhead/vue' in '.../node_modules/vue-recaptcha/dist/script-manager' HOT 4
- When use useRecaptchaProvider it throw warning HOT 1
- Sitekey is unknown at the time of application start
- Package import specifier "#imports" is not defined in package HOT 5
- Nuxt 3 "Error: Invariant violation: Please load enterprise recaptcha script first"
- Hiding captcha when navigating with useRouter HOT 5
- get captcha token in TS file HOT 1
- Failed to resolve component: Checkbox HOT 2
- Unable to use vue-recaptcha(version-2.0.3) in my vue 2.7 project HOT 1
- Multiple library loads HOT 2
- Docs are down HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from vue-recaptcha.